From 76da264a0ccaeff5fa88bcb5cfada1be6ae320c4 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 16:15:09 -0700 Subject: [PATCH 01/28] perf(mobile): highlight code with native @pierre/highlights instead of Shiki (#24544) Co-authored-by: Claude Opus 5.5 --- .macroscope/ignore.md | 5 + apps/mobile/.swiftlint.yml | 1 + apps/mobile/README.md | 8 - apps/mobile/app.config.ts | 1 - apps/mobile/metro.config.js | 23 - .../t3-highlights/T3HighlightsNative.podspec | 30 + .../Vendor/highlights/highlights.c | 96483 ++++++++++++++++ .../Vendor/highlights/highlights.h | 224 + .../t3-highlights/Vendor/simde/LICENSE | 20 + .../t3-highlights/Vendor/simde/wasm/simd128.h | 17950 +++ .../t3-highlights/Vendor/wasm2c/LICENSE | 202 + .../Vendor/wasm2c/wasm-rt-impl-tableops.inc | 90 + .../Vendor/wasm2c/wasm-rt-impl.c | 401 + .../Vendor/wasm2c/wasm-rt-impl.h | 68 + .../Vendor/wasm2c/wasm-rt-mem-impl-helper.inc | 207 + .../Vendor/wasm2c/wasm-rt-mem-impl.c | 171 + .../t3-highlights/Vendor/wasm2c/wasm-rt.h | 739 + .../modules/t3-highlights/android/.gitignore | 1 + .../t3-highlights/android/build.gradle | 34 + .../android/src/main/AndroidManifest.xml | 1 + .../android/src/main/cpp/CMakeLists.txt | 34 + .../android/src/main/cpp/t3_highlights_jni.c | 41 + .../t3highlights/T3HighlightsModule.kt | 37 + .../t3-highlights/cpp/generated/id_ranges.inc | 376 + .../modules/t3-highlights/cpp/t3_highlights.c | 139 + .../modules/t3-highlights/cpp/t3_highlights.h | 27 + .../t3-highlights/expo-module.config.json | 10 + .../ios/T3HighlightsModule.swift | 29 + .../mobile/modules/t3-highlights/package.json | 17 + apps/mobile/package.json | 9 +- .../plugins/withAndroidFbjniVersion.cjs | 46 - .../plugins/withAndroidFbjniVersion.test.mjs | 109 - apps/mobile/scripts/generate-highlights.mts | 193 + .../scripts/generate-highlights.test.ts | 28 + .../diffs/nativeReviewDiffHighlighter.test.ts | 184 +- .../diffs/nativeReviewDiffHighlighter.ts | 433 +- .../features/diffs/nativeReviewDiffTypes.ts | 13 +- .../src/features/files/SourceFileSurface.tsx | 4 +- .../features/files/nativeSourceFileAdapter.ts | 4 +- .../features/files/preload-workspace-file.ts | 4 +- .../features/files/source-file-document.ts | 4 +- .../features/files/sourceHighlightingState.ts | 56 +- .../review/ReviewCommentComposerSheet.tsx | 49 +- .../review/highlightReviewSelectedLines.ts | 111 + .../review/incrementalSnippet.test.ts | 67 - .../src/features/review/incrementalSnippet.ts | 65 - .../review/nativeReviewDiffAdapter.ts | 37 +- .../features/review/reviewDiffBridgeKeys.ts | 4 +- .../review/reviewHighlighterEngine.ts | 31 - .../review/shikiReviewHighlighter.test.ts | 41 - .../features/review/shikiReviewHighlighter.ts | 679 - .../review/useNativeReviewDiffHighlighting.ts | 97 +- .../src/features/threads/ThreadFeed.tsx | 2 - .../threads/markdownCodeHighlightState.ts | 88 +- apps/mobile/src/lib/highlightLanguage.ts | 20 + apps/mobile/src/lib/highlights.generated.ts | 371 + apps/mobile/src/lib/highlights.test.ts | 46 + apps/mobile/src/lib/highlights.testing.ts | 22 + apps/mobile/src/lib/highlights.ts | 73 + knip.jsonc | 1 + pnpm-lock.yaml | 59 +- pnpm-workspace.yaml | 1 + scripts/release-smoke.ts | 1 + third-party-licenses.config.json | 16 + vite.config.ts | 3 + 65 files changed, 118377 insertions(+), 1963 deletions(-) create mode 100644 apps/mobile/modules/t3-highlights/T3HighlightsNative.podspec create mode 100644 apps/mobile/modules/t3-highlights/Vendor/highlights/highlights.c create mode 100644 apps/mobile/modules/t3-highlights/Vendor/highlights/highlights.h create mode 100644 apps/mobile/modules/t3-highlights/Vendor/simde/LICENSE create mode 100644 apps/mobile/modules/t3-highlights/Vendor/simde/wasm/simd128.h create mode 100644 apps/mobile/modules/t3-highlights/Vendor/wasm2c/LICENSE create mode 100644 apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl-tableops.inc create mode 100644 apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl.c create mode 100644 apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl.h create mode 100644 apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-mem-impl-helper.inc create mode 100644 apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-mem-impl.c create mode 100644 apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt.h create mode 100644 apps/mobile/modules/t3-highlights/android/.gitignore create mode 100644 apps/mobile/modules/t3-highlights/android/build.gradle create mode 100644 apps/mobile/modules/t3-highlights/android/src/main/AndroidManifest.xml create mode 100644 apps/mobile/modules/t3-highlights/android/src/main/cpp/CMakeLists.txt create mode 100644 apps/mobile/modules/t3-highlights/android/src/main/cpp/t3_highlights_jni.c create mode 100644 apps/mobile/modules/t3-highlights/android/src/main/java/expo/modules/t3highlights/T3HighlightsModule.kt create mode 100644 apps/mobile/modules/t3-highlights/cpp/generated/id_ranges.inc create mode 100644 apps/mobile/modules/t3-highlights/cpp/t3_highlights.c create mode 100644 apps/mobile/modules/t3-highlights/cpp/t3_highlights.h create mode 100644 apps/mobile/modules/t3-highlights/expo-module.config.json create mode 100644 apps/mobile/modules/t3-highlights/ios/T3HighlightsModule.swift create mode 100644 apps/mobile/modules/t3-highlights/package.json delete mode 100644 apps/mobile/plugins/withAndroidFbjniVersion.cjs delete mode 100644 apps/mobile/plugins/withAndroidFbjniVersion.test.mjs create mode 100644 apps/mobile/scripts/generate-highlights.mts create mode 100644 apps/mobile/scripts/generate-highlights.test.ts create mode 100644 apps/mobile/src/features/review/highlightReviewSelectedLines.ts delete mode 100644 apps/mobile/src/features/review/incrementalSnippet.test.ts delete mode 100644 apps/mobile/src/features/review/incrementalSnippet.ts delete mode 100644 apps/mobile/src/features/review/reviewHighlighterEngine.ts delete mode 100644 apps/mobile/src/features/review/shikiReviewHighlighter.test.ts delete mode 100644 apps/mobile/src/features/review/shikiReviewHighlighter.ts create mode 100644 apps/mobile/src/lib/highlightLanguage.ts create mode 100644 apps/mobile/src/lib/highlights.generated.ts create mode 100644 apps/mobile/src/lib/highlights.test.ts create mode 100644 apps/mobile/src/lib/highlights.testing.ts create mode 100644 apps/mobile/src/lib/highlights.ts diff --git a/.macroscope/ignore.md b/.macroscope/ignore.md index e380d3d05ab0..66e5434c5ed1 100644 --- a/.macroscope/ignore.md +++ b/.macroscope/ignore.md @@ -274,3 +274,8 @@ infra/relay/migrations/**/snapshot.json # Ghostty build output vendored from upstream. apps/mobile/modules/t3-terminal/Vendor/** native/libghostty-vt/include/** + +# @pierre/highlights compiled to C by wasm2c, plus the wasm2c runtime and simde +# it needs. Regenerated by apps/mobile/scripts/generate-highlights.mts; review +# that script and cpp/t3_highlights.c instead. +apps/mobile/modules/t3-highlights/Vendor/** diff --git a/apps/mobile/.swiftlint.yml b/apps/mobile/.swiftlint.yml index c56a56251f73..4450e0485c52 100644 --- a/apps/mobile/.swiftlint.yml +++ b/apps/mobile/.swiftlint.yml @@ -1,6 +1,7 @@ included: - ios/T3Code - modules/t3-composer-editor/ios + - modules/t3-highlights/ios - modules/t3-native-controls/ios - modules/t3-terminal/ios - modules/t3-review-diff/ios diff --git a/apps/mobile/README.md b/apps/mobile/README.md index 20f98c6c9e34..b3b0556f6b28 100644 --- a/apps/mobile/README.md +++ b/apps/mobile/README.md @@ -96,14 +96,6 @@ Build and run the local iOS preview app: vp run ios:preview ``` -Force the review diff highlighter engine: - -```bash -EXPO_PUBLIC_REVIEW_HIGHLIGHTER_ENGINE=javascript vp run ios:dev -``` - -`javascript` is the default and recommended setting for the review diff screen. Set `EXPO_PUBLIC_REVIEW_HIGHLIGHTER_ENGINE=native` only when you explicitly want to test the native Shiki engine. - Inspect the resolved Expo config for a variant: ```bash diff --git a/apps/mobile/app.config.ts b/apps/mobile/app.config.ts index 55451537ef5a..422d8ff8e9f7 100644 --- a/apps/mobile/app.config.ts +++ b/apps/mobile/app.config.ts @@ -454,7 +454,6 @@ const config: ExpoConfig = { ...(!isIosPersonalTeamBuild ? ["./plugins/withWidgetLogoAsset.cjs", widgetsPlugin] : []), "./plugins/withAndroidCleartextTraffic.cjs", "./plugins/withAndroidGradleHeap.cjs", - "./plugins/withAndroidFbjniVersion.cjs", "./plugins/withAndroidInputBackground.cjs", "./plugins/withAndroidModernPopupMenu.cjs", "./plugins/withAndroidModernAlertDialog.cjs", diff --git a/apps/mobile/metro.config.js b/apps/mobile/metro.config.js index f8d55cf796d2..afbef3362d6d 100644 --- a/apps/mobile/metro.config.js +++ b/apps/mobile/metro.config.js @@ -16,23 +16,8 @@ const licenseGeneratorSource = path.join( "third-party-licenses.ts", ); const escapedWorkspaceRoot = workspaceRoot.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); -const mobileShikiRoot = path.dirname(require.resolve("shiki/package.json", { paths: [__dirname] })); const generatedDeviceStreamRoot = path.join(__dirname, ".generated", "device-stream"); const generatedPreviewStreamRoot = path.join(__dirname, ".generated", "preview-stream"); -const resolveShikiDependencyRoot = (packageName) => { - const entryPath = require.resolve(packageName, { paths: [mobileShikiRoot] }); - let currentDir = path.dirname(entryPath); - - while (!fs.existsSync(path.join(currentDir, "package.json"))) { - const parentDir = path.dirname(currentDir); - if (parentDir === currentDir) { - throw new Error(`Could not resolve package root for ${packageName}`); - } - currentDir = parentDir; - } - - return currentDir; -}; config.watchFolders = [...new Set([...(config.watchFolders ?? []), workspaceRoot])]; config.resolver = { @@ -50,14 +35,6 @@ config.resolver = { "@t3tools/mobile-third-party-licenses": generatedLicenseModuleRoot, "@t3tools/mobile-device-stream": generatedDeviceStreamRoot, "@t3tools/mobile-preview-stream": generatedPreviewStreamRoot, - shiki: mobileShikiRoot, - "@shikijs/core": resolveShikiDependencyRoot("@shikijs/core"), - "@shikijs/engine-javascript": resolveShikiDependencyRoot("@shikijs/engine-javascript"), - "@shikijs/engine-oniguruma": resolveShikiDependencyRoot("@shikijs/engine-oniguruma"), - "@shikijs/langs": resolveShikiDependencyRoot("@shikijs/langs"), - "@shikijs/themes": resolveShikiDependencyRoot("@shikijs/themes"), - "@shikijs/types": resolveShikiDependencyRoot("@shikijs/types"), - "@shikijs/vscode-textmate": resolveShikiDependencyRoot("@shikijs/vscode-textmate"), }, }; diff --git a/apps/mobile/modules/t3-highlights/T3HighlightsNative.podspec b/apps/mobile/modules/t3-highlights/T3HighlightsNative.podspec new file mode 100644 index 000000000000..0cc380369f0c --- /dev/null +++ b/apps/mobile/modules/t3-highlights/T3HighlightsNative.podspec @@ -0,0 +1,30 @@ +require 'json' + +package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) + +Pod::Spec.new do |s| + s.name = 'T3HighlightsNative' + s.version = package['version'] + s.summary = 'Native @pierre/highlights syntax highlighter for T3 Code mobile.' + s.description = 'Runs the @pierre/highlights lexers, compiled from WebAssembly to C with wasm2c.' + s.homepage = 'https://t3tools.com' + s.license = { :type => 'UNLICENSED' } + s.author = { 'T3 Tools' => 'hello@t3tools.com' } + s.platforms = { :ios => '16.1' } + s.source = { :path => '.' } + s.source_files = 'ios/**/*.swift', 'cpp/**/*.{c,h,inc}', 'Vendor/**/*.{c,h,inc}' + # Swift sees only the wrapper; the generated and runtime headers stay private. + s.public_header_files = 'cpp/t3_highlights.h' + # Debug builds compile at -O0 by default, which makes the lexers several times + # slower. They are generated code, so optimize them in every configuration. + s.compiler_flags = '-O2' + s.pod_target_xcconfig = { + 'DEFINES_MODULE' => 'YES', + # Plain malloc memory with explicit bounds checks: no guard-page signal + # handlers competing with the app's crash reporting. + 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) WASM_RT_USE_MMAP=0 WASM_RT_MEMCHECK_BOUNDS_CHECK=1 WASM_RT_SKIP_SIGNAL_RECOVERY=1', + 'HEADER_SEARCH_PATHS' => '$(inherited) "${PODS_TARGET_SRCROOT}/Vendor" "${PODS_TARGET_SRCROOT}/Vendor/highlights" "${PODS_TARGET_SRCROOT}/Vendor/wasm2c"', + } + s.swift_version = '5.9' + s.dependency 'ExpoModulesCore' +end diff --git a/apps/mobile/modules/t3-highlights/Vendor/highlights/highlights.c b/apps/mobile/modules/t3-highlights/Vendor/highlights/highlights.c new file mode 100644 index 000000000000..d319651012d3 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/highlights/highlights.c @@ -0,0 +1,96483 @@ +/* Generated by apps/mobile/scripts/generate-highlights.mts from @pierre/highlights 0.2.0 (highlights.wasm sha256 cf5fc4d83e7c1ddab19d163de096f787f87efe61504909aa469434f61ef51e2e). Do not edit. */ +/* Automatically generated by wasm2c */ +#include +#include +#include +#include +#include +#if defined(__MINGW32__) +#include +#elif defined(_MSC_VER) +#include +#include +#define alloca _alloca +#elif defined(__FreeBSD__) || defined(__OpenBSD__) +#include +#else +#include +#endif + +#include "highlights.h" +#define IS_SINGLE_UNSHARED_DEFAULT32_MEMORY 1 + +// Computes a pointer to an object of the given size in a little-endian memory. +// +// On a little-endian host, this is just &mem->data[addr] - the object's size is +// unused. On a big-endian host, it's &mem->data[mem->size - addr - n], where n +// is the object's size. +// +// Note that mem may be evaluated multiple times. +// +// Parameters: +// mem - The memory. +// addr - The address. +// n - The size of the object. +// +// Result: +// A pointer for an object of size n. +#if WABT_BIG_ENDIAN +#define MEM_ADDR(mem, addr, n) ((mem)->data_end - (addr) - (n)) +#else +#define MEM_ADDR(mem, addr, n) &((mem)->data[addr]) +#endif + +// We can only use Segue for this module if it uses a single unshared, +// default-page, 32-bit imported or exported memory. +#if WASM_RT_USE_SEGUE && IS_SINGLE_UNSHARED_DEFAULT32_MEMORY +#define WASM_RT_USE_SEGUE_FOR_THIS_MODULE 1 +#else +#define WASM_RT_USE_SEGUE_FOR_THIS_MODULE 0 +#endif + +#ifndef WASM_RT_USE_LOCAL_MEMORY_BASE_SIZE +#define WASM_RT_USE_LOCAL_MEMORY_BASE_SIZE 1 +#endif + +#if WASM_RT_USE_LOCAL_MEMORY_BASE_SIZE && WASM_RT_USE_MMAP && \ + IS_SINGLE_UNSHARED_DEFAULT32_MEMORY && !WABT_BIG_ENDIAN +#define WASM_RT_USE_LOCAL_MEMORY_BASE_SIZE_FOR_THIS_MODULE 1 +#else +#define WASM_RT_USE_LOCAL_MEMORY_BASE_SIZE_FOR_THIS_MODULE 0 +#endif + +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +// POSIX uses FS for TLS, GS is free +static inline void* wasm_rt_segue_read_base() { + if (wasm_rt_fsgsbase_inst_supported) { + return (void*)__builtin_ia32_rdgsbase64(); + } else { + return wasm_rt_syscall_get_segue_base(); + } +} +static inline void wasm_rt_segue_write_base(void* base) { +#if WASM_RT_SEGUE_FREE_SEGMENT + if (wasm_rt_last_segment_val == base) { + return; + } + + wasm_rt_last_segment_val = base; +#endif + + if (wasm_rt_fsgsbase_inst_supported) { + __builtin_ia32_wrgsbase64((uintptr_t)base); + } else { + wasm_rt_syscall_set_segue_base(base); + } +} +#define MEM_ADDR_MEMOP(mem, addr, n) ((uint8_t __seg_gs*)(uintptr_t)addr) +#elif WASM_RT_USE_LOCAL_MEMORY_BASE_SIZE_FOR_THIS_MODULE +#define MEM_ADDR_MEMOP(mem, addr, n) (&wasm_rt_local_memory_base[(addr)]) +#else +#define MEM_ADDR_MEMOP(mem, addr, n) MEM_ADDR(mem, addr, n) +#endif + +#define TRAP(x) (wasm_rt_trap(WASM_RT_TRAP_##x), 0) + +#if WASM_RT_STACK_DEPTH_COUNT +#define FUNC_PROLOGUE \ + if (++wasm_rt_call_stack_depth > WASM_RT_MAX_CALL_STACK_DEPTH) \ + TRAP(EXHAUSTION); + +#define FUNC_EPILOGUE --wasm_rt_call_stack_depth +#else +#define FUNC_PROLOGUE + +#define FUNC_EPILOGUE +#endif + +#define UNREACHABLE TRAP(UNREACHABLE) + +#if defined(__clang__) || defined(__GNUC__) +#define W2C_COLD_FUNC __attribute__((noinline, cold)) +#elif defined(_MSC_VER) +#define W2C_COLD_FUNC __declspec(noinline) +#else +#define W2C_COLD_FUNC +#endif + +W2C_COLD_FUNC static bool func_types_eq_slowpath( + const wasm_rt_funcref_table_t* table, + const wasm_rt_func_type_t expected_type, + uint32_t index) { + const size_t sha256size = 32; + if (index >= table->size) { + // Table index out of bounds. Raise Wasm trap. + TRAP(CALL_INDIRECT); + return false; + } + const wasm_rt_funcref_t* const func_ref = &table->data[index]; + if (!expected_type || !func_ref->func || !func_ref->func_type || + memcmp(expected_type, func_ref->func_type, sha256size) != 0) { + // Type check failed. Raise Wasm trap. + TRAP(CALL_INDIRECT); + return false; + } + return true; +} + +#define CHECK_CALL_INDIRECT(table, ft, x) \ + (LIKELY((x) < table.size && ft == table.data[x].func_type) || \ + func_types_eq_slowpath(&(table), ft, x)) + +#define DO_CALL_INDIRECT(table, t, x, ...) ((t)table.data[x].func)(__VA_ARGS__) + +#define CALL_INDIRECT(table, t, ft, x, ...) \ + (CHECK_CALL_INDIRECT(table, ft, x), \ + DO_CALL_INDIRECT(table, t, x, __VA_ARGS__)) + +static inline uint64_t checked_add_u64(uint64_t a, uint64_t b) { + uint64_t ret; +#if __has_builtin(__builtin_add_overflow) + if (__builtin_add_overflow(a, b, &ret)) + TRAP(OOB); +#elif defined(_MSC_VER) + if (_addcarry_u64(0, a, b, &ret)) + TRAP(OOB); +#else + ret = a + b; + if (ret < a) + TRAP(OOB); +#endif + return ret; +} + +#define RANGE_CHECK(mem, offset, len) \ + do { \ + uint64_t res = checked_add_u64(offset, len); \ + if (UNLIKELY(res > (mem)->size)) \ + TRAP(OOB); \ + } while (0); + +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && WASM_RT_SANITY_CHECKS +#include +#define WASM_RT_CHECK_BASE(mem) \ + if (((uintptr_t)((mem)->data)) != ((uintptr_t)wasm_rt_segue_read_base())) { \ + puts("Segment register mismatch\n"); \ + abort(); \ + } +#else +#define WASM_RT_CHECK_BASE(mem) +#endif + +// MEMCHECK_DEFAULT32 is an "accelerated" MEMCHECK used only for +// default-page-size, 32-bit memories. It may do nothing at all +// (if hardware bounds-checking is enabled via guard pages) +// or it may do a slightly faster RANGE_CHECK. +#if WASM_RT_MEMCHECK_GUARD_PAGES +#define MEMCHECK_DEFAULT32(mem, local_memory_size, a, t) \ + WASM_RT_CHECK_BASE(mem); +#else +#if WASM_RT_USE_LOCAL_MEMORY_BASE_SIZE_FOR_THIS_MODULE +#define MEMCHECK_DEFAULT32(mem, local_memory_size, a, t) \ + WASM_RT_CHECK_BASE(mem); \ + if (UNLIKELY(a + (uint64_t)sizeof(t) > local_memory_size)) \ + TRAP(OOB); +#else +#define MEMCHECK_DEFAULT32(mem, local_memory_size, a, t) \ + WASM_RT_CHECK_BASE(mem); \ + if (UNLIKELY(a + (uint64_t)sizeof(t) > mem->size)) \ + TRAP(OOB); +#endif +#endif + +// MEMCHECK_GENERAL can be used for any memory +#define MEMCHECK_GENERAL(mem, a, t) \ + WASM_RT_CHECK_BASE(mem); \ + RANGE_CHECK(mem, a, sizeof(t)); + +// When using guard pages, reads have to be immediately consumed so that OOB +// trap checks are applied in the right place, and not optimized away. This is +// done using FORCE_READ_INT/FORCE_READ_FLOAT +#if WASM_RT_MEMCHECK_BOUNDS_CHECK || \ + WASM_RT_NONCONFORMING_ALLOW_OOB_READ_ELIMINATION +#define FORCE_READ_INT(var) +#define FORCE_READ_FLOAT(var) +#elif defined(__GNUC__) && WASM_RT_MEMCHECK_GUARD_PAGES +#define FORCE_READ_INT(var) __asm__("" ::"r"(var)) + +#if defined(__x86_64__) || defined(_M_X64) +#define FORCE_READ_FLOAT_CONSTRAINT "x" +#elif defined(__aarch64__) && defined(__ARM_FP) && ((__ARM_FP & 0x4) != 0) +#define FORCE_READ_FLOAT_CONSTRAINT "w" +#elif defined(__mips__) && defined(__clang__) && !defined(__mips_soft_float) +// Clang before v18 uses hard floats which has a different constraint +#define FORCE_READ_FLOAT_CONSTRAINT "f" +#elif (defined(__powerpc__) || defined(__ppc__) || defined(__PPC__)) && \ + !(defined(_SOFT_FLOAT) || defined(__NO_FPRS__)) +#define FORCE_READ_FLOAT_CONSTRAINT "f" +#elif defined(__riscv) && defined(__riscv_flen) && (__riscv_flen >= 32) +#define FORCE_READ_FLOAT_CONSTRAINT "f" +#elif defined(__s390__) || defined(__s390x__) +#define FORCE_READ_FLOAT_CONSTRAINT "f" +#else +#define FORCE_READ_FLOAT_CONSTRAINT "r" +#endif + +#define FORCE_READ_FLOAT(var) __asm__("" ::FORCE_READ_FLOAT_CONSTRAINT(var)) +#else +#error \ + "Guard page mode for Wasm not supported on this platform because FORCE_READ_INT/FORCE_READ_FLOAT could not be instantiated." \ + "Either enable specify -DWASM_RT_NONCONFORMING_ALLOW_OOB_READ_ELIMINATION=1 during compilation or use -DWASM_RT_MEMCHECK_BOUNDS_CHECK=1 to use bounds check mode" +#endif + +static inline void load_data(u8* dest, const u8* src, size_t n) { + if (!n) { + return; + } +#if WABT_BIG_ENDIAN + for (size_t i = 0; i < n; i++) { + dest[i] = src[n - i - 1]; + } +#else + wasm_rt_memcpy(dest, src, n); +#endif +} + +#define LOAD_DATA(m, o, i, s) \ + do { \ + RANGE_CHECK((&m), o, s); \ + load_data(MEM_ADDR(&m, o, s), i, s); \ + } while (0) + +#define DEF_MEM_CHECKS0(name, shared, mem_type, ret_kw, return_type) \ + static inline return_type name##_default32( \ + uint8_t* const wasm_rt_local_memory_base, \ + uint64_t wasm_rt_local_memory_size, wasm_rt##shared##memory_t* mem, \ + u64 addr) { \ + MEMCHECK_DEFAULT32(mem, wasm_rt_local_memory_size, addr, mem_type); \ + ret_kw name##_unchecked(wasm_rt_local_memory_base, mem, addr); \ + } \ + static inline return_type name(uint8_t* const wasm_rt_local_memory_base, \ + uint64_t wasm_rt_local_memory_size, \ + wasm_rt##shared##memory_t* mem, u64 addr) { \ + MEMCHECK_GENERAL(mem, addr, mem_type); \ + ret_kw name##_unchecked(wasm_rt_local_memory_base, mem, addr); \ + } + +#define DEF_MEM_CHECKS1(name, shared, mem_type, ret_kw, return_type, \ + val_type1) \ + static inline return_type name##_default32( \ + uint8_t* const wasm_rt_local_memory_base, \ + uint64_t wasm_rt_local_memory_size, wasm_rt##shared##memory_t* mem, \ + u64 addr, val_type1 val1) { \ + MEMCHECK_DEFAULT32(mem, wasm_rt_local_memory_size, addr, mem_type); \ + ret_kw name##_unchecked(wasm_rt_local_memory_base, mem, addr, val1); \ + } \ + static inline return_type name(uint8_t* const wasm_rt_local_memory_base, \ + uint64_t wasm_rt_local_memory_size, \ + wasm_rt##shared##memory_t* mem, u64 addr, \ + val_type1 val1) { \ + MEMCHECK_GENERAL(mem, addr, mem_type); \ + ret_kw name##_unchecked(wasm_rt_local_memory_base, mem, addr, val1); \ + } + +#define DEF_MEM_CHECKS2(name, shared, mem_type, ret_kw, return_type, \ + val_type1, val_type2) \ + static inline return_type name##_default32( \ + uint8_t* const wasm_rt_local_memory_base, \ + uint64_t wasm_rt_local_memory_size, wasm_rt##shared##memory_t* mem, \ + u64 addr, val_type1 val1, val_type2 val2) { \ + MEMCHECK_DEFAULT32(mem, wasm_rt_local_memory_size, addr, mem_type); \ + ret_kw name##_unchecked(wasm_rt_local_memory_base, mem, addr, val1, val2); \ + } \ + static inline return_type name(uint8_t* const wasm_rt_local_memory_base, \ + uint64_t wasm_rt_local_memory_size, \ + wasm_rt##shared##memory_t* mem, u64 addr, \ + val_type1 val1, val_type2 val2) { \ + MEMCHECK_GENERAL(mem, addr, mem_type); \ + ret_kw name##_unchecked(wasm_rt_local_memory_base, mem, addr, val1, val2); \ + } + +#define DEFINE_LOAD(name, t1, t2, t3, force_read) \ + static inline t3 name##_unchecked(uint8_t* const wasm_rt_local_memory_base, \ + wasm_rt_memory_t* mem, u64 addr) { \ + t1 result; \ + wasm_rt_memcpy(&result, MEM_ADDR_MEMOP(mem, addr, sizeof(t1)), \ + sizeof(t1)); \ + t3 ret = (t3)(t2)result; \ + force_read(ret); \ + return ret; \ + } \ + DEF_MEM_CHECKS0(name, _, t1, return, t3) + +#define DEFINE_STORE(name, t1, t2) \ + static inline void name##_unchecked( \ + uint8_t* const wasm_rt_local_memory_base, wasm_rt_memory_t* mem, \ + u64 addr, t2 value) { \ + t1 wrapped = (t1)value; \ + wasm_rt_memcpy(MEM_ADDR_MEMOP(mem, addr, sizeof(t1)), &wrapped, \ + sizeof(t1)); \ + } \ + DEF_MEM_CHECKS1(name, _, t1, , void, t2) + +DEFINE_LOAD(i32_load, u32, u32, u32, FORCE_READ_INT) +DEFINE_LOAD(i64_load, u64, u64, u64, FORCE_READ_INT) +DEFINE_LOAD(f32_load, f32, f32, f32, FORCE_READ_FLOAT) +DEFINE_LOAD(f64_load, f64, f64, f64, FORCE_READ_FLOAT) +DEFINE_LOAD(i32_load8_s, s8, s32, u32, FORCE_READ_INT) +DEFINE_LOAD(i64_load8_s, s8, s64, u64, FORCE_READ_INT) +DEFINE_LOAD(i32_load8_u, u8, u32, u32, FORCE_READ_INT) +DEFINE_LOAD(i64_load8_u, u8, u64, u64, FORCE_READ_INT) +DEFINE_LOAD(i32_load16_s, s16, s32, u32, FORCE_READ_INT) +DEFINE_LOAD(i64_load16_s, s16, s64, u64, FORCE_READ_INT) +DEFINE_LOAD(i32_load16_u, u16, u32, u32, FORCE_READ_INT) +DEFINE_LOAD(i64_load16_u, u16, u64, u64, FORCE_READ_INT) +DEFINE_LOAD(i64_load32_s, s32, s64, u64, FORCE_READ_INT) +DEFINE_LOAD(i64_load32_u, u32, u64, u64, FORCE_READ_INT) +DEFINE_STORE(i32_store, u32, u32) +DEFINE_STORE(i64_store, u64, u64) +DEFINE_STORE(f32_store, f32, f32) +DEFINE_STORE(f64_store, f64, f64) +DEFINE_STORE(i32_store8, u8, u32) +DEFINE_STORE(i32_store16, u16, u32) +DEFINE_STORE(i64_store8, u8, u64) +DEFINE_STORE(i64_store16, u16, u64) +DEFINE_STORE(i64_store32, u32, u64) + +#if defined(_MSC_VER) + +// Adapted from +// https://github.com/nemequ/portable-snippets/blob/master/builtin/builtin.h + +static inline int I64_CLZ(unsigned long long v) { + unsigned long r = 0; +#if defined(_M_AMD64) || defined(_M_ARM) + if (_BitScanReverse64(&r, v)) { + return 63 - r; + } +#else + if (_BitScanReverse(&r, (unsigned long)(v >> 32))) { + return 31 - r; + } else if (_BitScanReverse(&r, (unsigned long)v)) { + return 63 - r; + } +#endif + return 64; +} + +static inline int I32_CLZ(unsigned long v) { + unsigned long r = 0; + if (_BitScanReverse(&r, v)) { + return 31 - r; + } + return 32; +} + +static inline int I64_CTZ(unsigned long long v) { + if (!v) { + return 64; + } + unsigned long r = 0; +#if defined(_M_AMD64) || defined(_M_ARM) + _BitScanForward64(&r, v); + return (int)r; +#else + if (_BitScanForward(&r, (unsigned int)(v))) { + return (int)(r); + } + + _BitScanForward(&r, (unsigned int)(v >> 32)); + return (int)(r + 32); +#endif +} + +static inline int I32_CTZ(unsigned long v) { + if (!v) { + return 32; + } + unsigned long r = 0; + _BitScanForward(&r, v); + return (int)r; +} + +#define POPCOUNT_DEFINE_PORTABLE(f_n, T) \ + static inline u32 f_n(T x) { \ + x = x - ((x >> 1) & (T) ~(T)0 / 3); \ + x = (x & (T) ~(T)0 / 15 * 3) + ((x >> 2) & (T) ~(T)0 / 15 * 3); \ + x = (x + (x >> 4)) & (T) ~(T)0 / 255 * 15; \ + return (T)(x * ((T) ~(T)0 / 255)) >> (sizeof(T) - 1) * 8; \ + } + +POPCOUNT_DEFINE_PORTABLE(I32_POPCNT, u32) +POPCOUNT_DEFINE_PORTABLE(I64_POPCNT, u64) + +#undef POPCOUNT_DEFINE_PORTABLE + +#else + +#define I32_CLZ(x) ((x) ? __builtin_clz(x) : 32) +#define I64_CLZ(x) ((x) ? __builtin_clzll(x) : 64) +#define I32_CTZ(x) ((x) ? __builtin_ctz(x) : 32) +#define I64_CTZ(x) ((x) ? __builtin_ctzll(x) : 64) +#define I32_POPCNT(x) (__builtin_popcount(x)) +#define I64_POPCNT(x) (__builtin_popcountll(x)) + +#endif + +#define DIV_S(ut, min, x, y) \ + ((UNLIKELY((y) == 0)) ? TRAP(DIV_BY_ZERO) \ + : (UNLIKELY((x) == min && (y) == -1)) ? TRAP(INT_OVERFLOW) \ + : (ut)((x) / (y))) + +#define REM_S(ut, min, x, y) \ + ((UNLIKELY((y) == 0)) ? TRAP(DIV_BY_ZERO) \ + : (UNLIKELY((x) == min && (y) == -1)) ? 0 \ + : (ut)((x) % (y))) + +#define I32_DIV_S(x, y) DIV_S(u32, INT32_MIN, (s32)x, (s32)y) +#define I64_DIV_S(x, y) DIV_S(u64, INT64_MIN, (s64)x, (s64)y) +#define I32_REM_S(x, y) REM_S(u32, INT32_MIN, (s32)x, (s32)y) +#define I64_REM_S(x, y) REM_S(u64, INT64_MIN, (s64)x, (s64)y) + +#define DIVREM_U(op, x, y) \ + ((UNLIKELY((y) == 0)) ? TRAP(DIV_BY_ZERO) : ((x)op(y))) + +#define DIV_U(x, y) DIVREM_U(/, x, y) +#define REM_U(x, y) DIVREM_U(%, x, y) + +#define ROTL(x, y, mask) \ + (((x) << ((y) & (mask))) | ((x) >> (((mask) - (y) + 1) & (mask)))) +#define ROTR(x, y, mask) \ + (((x) >> ((y) & (mask))) | ((x) << (((mask) - (y) + 1) & (mask)))) + +#define I32_ROTL(x, y) ROTL(x, y, 31) +#define I64_ROTL(x, y) ROTL(x, y, 63) +#define I32_ROTR(x, y) ROTR(x, y, 31) +#define I64_ROTR(x, y) ROTR(x, y, 63) + +#define FMIN(x, y) \ + ((UNLIKELY((x) != (x))) ? NAN \ + : (UNLIKELY((y) != (y))) ? NAN \ + : (UNLIKELY((x) == 0 && (y) == 0)) ? (signbit(x) ? x : y) \ + : (x < y) ? x \ + : y) + +#define FMAX(x, y) \ + ((UNLIKELY((x) != (x))) ? NAN \ + : (UNLIKELY((y) != (y))) ? NAN \ + : (UNLIKELY((x) == 0 && (y) == 0)) ? (signbit(x) ? y : x) \ + : (x > y) ? x \ + : y) + +#define TRUNC_S(ut, st, ft, min, minop, max, x) \ + ((UNLIKELY((x) != (x))) ? TRAP(INVALID_CONVERSION) \ + : (UNLIKELY(!((x)minop(min) && (x) < (max)))) ? TRAP(INT_OVERFLOW) \ + : (ut)(st)(x)) + +#define I32_TRUNC_S_F32(x) \ + TRUNC_S(u32, s32, f32, (f32)INT32_MIN, >=, 2147483648.f, x) +#define I64_TRUNC_S_F32(x) \ + TRUNC_S(u64, s64, f32, (f32)INT64_MIN, >=, (f32)INT64_MAX, x) +#define I32_TRUNC_S_F64(x) \ + TRUNC_S(u32, s32, f64, -2147483649., >, 2147483648., x) +#define I64_TRUNC_S_F64(x) \ + TRUNC_S(u64, s64, f64, (f64)INT64_MIN, >=, (f64)INT64_MAX, x) + +#define TRUNC_U(ut, ft, max, x) \ + ((UNLIKELY((x) != (x))) ? TRAP(INVALID_CONVERSION) \ + : (UNLIKELY(!((x) > (ft) - 1 && (x) < (max)))) ? TRAP(INT_OVERFLOW) \ + : (ut)(x)) + +#define I32_TRUNC_U_F32(x) TRUNC_U(u32, f32, 4294967296.f, x) +#define I64_TRUNC_U_F32(x) TRUNC_U(u64, f32, (f32)UINT64_MAX, x) +#define I32_TRUNC_U_F64(x) TRUNC_U(u32, f64, 4294967296., x) +#define I64_TRUNC_U_F64(x) TRUNC_U(u64, f64, (f64)UINT64_MAX, x) + +#define TRUNC_SAT_S(ut, st, ft, min, smin, minop, max, smax, x) \ + ((UNLIKELY((x) != (x))) ? 0 \ + : (UNLIKELY(!((x)minop(min)))) ? smin \ + : (UNLIKELY(!((x) < (max)))) ? smax \ + : (ut)(st)(x)) + +#define I32_TRUNC_SAT_S_F32(x) \ + TRUNC_SAT_S(u32, s32, f32, (f32)INT32_MIN, INT32_MIN, >=, 2147483648.f, \ + INT32_MAX, x) +#define I64_TRUNC_SAT_S_F32(x) \ + TRUNC_SAT_S(u64, s64, f32, (f32)INT64_MIN, INT64_MIN, >=, (f32)INT64_MAX, \ + INT64_MAX, x) +#define I32_TRUNC_SAT_S_F64(x) \ + TRUNC_SAT_S(u32, s32, f64, -2147483649., INT32_MIN, >, 2147483648., \ + INT32_MAX, x) +#define I64_TRUNC_SAT_S_F64(x) \ + TRUNC_SAT_S(u64, s64, f64, (f64)INT64_MIN, INT64_MIN, >=, (f64)INT64_MAX, \ + INT64_MAX, x) + +#define TRUNC_SAT_U(ut, ft, max, smax, x) \ + ((UNLIKELY((x) != (x))) ? 0 \ + : (UNLIKELY(!((x) > (ft) - 1))) ? 0 \ + : (UNLIKELY(!((x) < (max)))) ? smax \ + : (ut)(x)) + +#define I32_TRUNC_SAT_U_F32(x) \ + TRUNC_SAT_U(u32, f32, 4294967296.f, UINT32_MAX, x) +#define I64_TRUNC_SAT_U_F32(x) \ + TRUNC_SAT_U(u64, f32, (f32)UINT64_MAX, UINT64_MAX, x) +#define I32_TRUNC_SAT_U_F64(x) TRUNC_SAT_U(u32, f64, 4294967296., UINT32_MAX, x) +#define I64_TRUNC_SAT_U_F64(x) \ + TRUNC_SAT_U(u64, f64, (f64)UINT64_MAX, UINT64_MAX, x) + +#define DEFINE_REINTERPRET(name, t1, t2) \ + static inline t2 name(t1 x) { \ + t2 result; \ + wasm_rt_memcpy(&result, &x, sizeof(result)); \ + return result; \ + } + +DEFINE_REINTERPRET(f32_reinterpret_i32, u32, f32) +DEFINE_REINTERPRET(i32_reinterpret_f32, f32, u32) +DEFINE_REINTERPRET(f64_reinterpret_i64, u64, f64) +DEFINE_REINTERPRET(i64_reinterpret_f64, f64, u64) + +static float quiet_nanf(float x) { + uint32_t tmp; + wasm_rt_memcpy(&tmp, &x, 4); + tmp |= 0x7fc00000lu; + wasm_rt_memcpy(&x, &tmp, 4); + return x; +} + +static double quiet_nan(double x) { + uint64_t tmp; + wasm_rt_memcpy(&tmp, &x, 8); + tmp |= 0x7ff8000000000000llu; + wasm_rt_memcpy(&x, &tmp, 8); + return x; +} + +static double wasm_quiet(double x) { + if (UNLIKELY(isnan(x))) { + return quiet_nan(x); + } + return x; +} + +static float wasm_quietf(float x) { + if (UNLIKELY(isnan(x))) { + return quiet_nanf(x); + } + return x; +} + +static double wasm_floor(double x) { + if (UNLIKELY(isnan(x))) { + return quiet_nan(x); + } + return floor(x); +} + +static float wasm_floorf(float x) { + if (UNLIKELY(isnan(x))) { + return quiet_nanf(x); + } + return floorf(x); +} + +static double wasm_ceil(double x) { + if (UNLIKELY(isnan(x))) { + return quiet_nan(x); + } + return ceil(x); +} + +static float wasm_ceilf(float x) { + if (UNLIKELY(isnan(x))) { + return quiet_nanf(x); + } + return ceilf(x); +} + +static double wasm_trunc(double x) { + if (UNLIKELY(isnan(x))) { + return quiet_nan(x); + } + return trunc(x); +} + +static float wasm_truncf(float x) { + if (UNLIKELY(isnan(x))) { + return quiet_nanf(x); + } + return truncf(x); +} + +static float wasm_nearbyintf(float x) { + if (UNLIKELY(isnan(x))) { + return quiet_nanf(x); + } + return nearbyintf(x); +} + +static double wasm_nearbyint(double x) { + if (UNLIKELY(isnan(x))) { + return quiet_nan(x); + } + return nearbyint(x); +} + +static float wasm_fabsf(float x) { + if (UNLIKELY(isnan(x))) { + uint32_t tmp; + wasm_rt_memcpy(&tmp, &x, 4); + tmp = tmp & ~(1UL << 31); + wasm_rt_memcpy(&x, &tmp, 4); + return x; + } + return fabsf(x); +} + +static double wasm_fabs(double x) { + if (UNLIKELY(isnan(x))) { + uint64_t tmp; + wasm_rt_memcpy(&tmp, &x, 8); + tmp = tmp & ~(1ULL << 63); + wasm_rt_memcpy(&x, &tmp, 8); + return x; + } + return fabs(x); +} + +static double wasm_sqrt(double x) { + if (UNLIKELY(isnan(x))) { + return quiet_nan(x); + } + +#if __has_builtin(__builtin_elementwise_sqrt) + // Fastest option: doesn't set errno + return __builtin_elementwise_sqrt(x); +#elif __has_builtin(__builtin_sqrt) + // Optimized if -fno-math-errno is set + return __builtin_sqrt(x); +#else + // Libc call. May/may not be optimized + return sqrt(x); +#endif +} + +static float wasm_sqrtf(float x) { + if (UNLIKELY(isnan(x))) { + return quiet_nanf(x); + } + +#if __has_builtin(__builtin_elementwise_sqrt) + // Fastest option: doesn't set errno + return __builtin_elementwise_sqrt(x); +#elif __has_builtin(__builtin_sqrt) + // Optimized if -fno-math-errno is set + return __builtin_sqrtf(x); +#else + // Libc call. May/may not be optimized + return sqrtf(x); +#endif +} + +static inline void memory_fill(wasm_rt_memory_t* mem, u64 d, u32 val, u64 n) { + RANGE_CHECK(mem, d, n); + memset(MEM_ADDR(mem, d, n), val, n); +} + +static inline void memory_copy(wasm_rt_memory_t* dest, + const wasm_rt_memory_t* src, + u64 dest_addr, + u64 src_addr, + u64 n) { + RANGE_CHECK(dest, dest_addr, n); + RANGE_CHECK(src, src_addr, n); + memmove(MEM_ADDR(dest, dest_addr, n), MEM_ADDR(src, src_addr, n), n); +} + +static inline void memory_init(wasm_rt_memory_t* dest, + const u8* src, + u32 src_size, + u64 dest_addr, + u32 src_addr, + u32 n) { + if (UNLIKELY(src_addr + (uint64_t)n > src_size)) + TRAP(OOB); + LOAD_DATA((*dest), dest_addr, src + src_addr, n); +} + +typedef enum { RefFunc, RefNull, GlobalGet } wasm_elem_segment_expr_type_t; + +typedef struct { + wasm_elem_segment_expr_type_t expr_type; + wasm_rt_func_type_t type; + wasm_rt_function_ptr_t func; + wasm_rt_tailcallee_t func_tailcallee; + size_t module_offset; +} wasm_elem_segment_expr_t; + +static inline void funcref_table_init(wasm_rt_funcref_table_t* dest, + const wasm_elem_segment_expr_t* src, + u32 src_size, + u64 dest_addr, + u32 src_addr, + u32 n, + void* module_instance) { + if (UNLIKELY(src_addr + (uint64_t)n > src_size)) + TRAP(OOB); + RANGE_CHECK(dest, dest_addr, n); + for (u32 i = 0; i < n; i++) { + const wasm_elem_segment_expr_t* const src_expr = &src[src_addr + i]; + wasm_rt_funcref_t* const dest_val = &(dest->data[dest_addr + i]); + switch (src_expr->expr_type) { + case RefFunc: + *dest_val = (wasm_rt_funcref_t){ + src_expr->type, src_expr->func, src_expr->func_tailcallee, + (char*)module_instance + src_expr->module_offset}; + break; + case RefNull: + *dest_val = wasm_rt_funcref_null_value; + break; + case GlobalGet: + *dest_val = **(wasm_rt_funcref_t**)((char*)module_instance + + src_expr->module_offset); + break; + } + } +} + +// Currently wasm2c only supports initializing externref tables with ref.null. +static inline void externref_table_init(wasm_rt_externref_table_t* dest, + u32 src_size, + u64 dest_addr, + u32 src_addr, + u32 n) { + if (UNLIKELY(src_addr + (uint64_t)n > src_size)) + TRAP(OOB); + RANGE_CHECK(dest, dest_addr, n); + for (u32 i = 0; i < n; i++) { + dest->data[dest_addr + i] = wasm_rt_externref_null_value; + } +} + +#define DEFINE_TABLE_COPY(type) \ + static inline void type##_table_copy(wasm_rt_##type##_table_t* dest, \ + const wasm_rt_##type##_table_t* src, \ + u64 dest_addr, u64 src_addr, u64 n) { \ + RANGE_CHECK(dest, dest_addr, n); \ + RANGE_CHECK(src, src_addr, n); \ + memmove(dest->data + dest_addr, src->data + src_addr, \ + n * sizeof(wasm_rt_##type##_t)); \ + } + +DEFINE_TABLE_COPY(funcref) +DEFINE_TABLE_COPY(externref) + +#define DEFINE_TABLE_GET(type) \ + static inline wasm_rt_##type##_t type##_table_get( \ + const wasm_rt_##type##_table_t* table, u64 i) { \ + if (UNLIKELY(i >= table->size)) \ + TRAP(OOB); \ + return table->data[i]; \ + } + +DEFINE_TABLE_GET(funcref) +DEFINE_TABLE_GET(externref) + +#define DEFINE_TABLE_SET(type) \ + static inline void type##_table_set(const wasm_rt_##type##_table_t* table, \ + u64 i, const wasm_rt_##type##_t val) { \ + if (UNLIKELY(i >= table->size)) \ + TRAP(OOB); \ + table->data[i] = val; \ + } + +DEFINE_TABLE_SET(funcref) +DEFINE_TABLE_SET(externref) + +#define DEFINE_TABLE_FILL(type) \ + static inline void type##_table_fill(const wasm_rt_##type##_table_t* table, \ + u64 d, const wasm_rt_##type##_t val, \ + u64 n) { \ + RANGE_CHECK(table, d, n); \ + for (uint32_t i = d; i < d + n; i++) { \ + table->data[i] = val; \ + } \ + } + +DEFINE_TABLE_FILL(funcref) +DEFINE_TABLE_FILL(externref) + +#if defined(__GNUC__) || defined(__clang__) +#define FUNC_TYPE_DECL_EXTERN_T(x) extern const char* const x +#define FUNC_TYPE_EXTERN_T(x) const char* const x +#define FUNC_TYPE_T(x) static const char* const x +#else +#define FUNC_TYPE_DECL_EXTERN_T(x) extern const char x[] +#define FUNC_TYPE_EXTERN_T(x) const char x[] +#define FUNC_TYPE_T(x) static const char x[] +#endif + +#if (__STDC_VERSION__ < 201112L) && !defined(static_assert) +#define static_assert(X) \ + extern int(*assertion(void))[!!sizeof(struct { int x : (X) ? 2 : -1; })]; +#endif + +#ifdef _MSC_VER +#define WEAK_FUNC_DECL(func, fallback) \ + __pragma(comment(linker, "/alternatename:" #func "=" #fallback)) \ + \ + void \ + fallback(void** instance_ptr, void* tail_call_stack, \ + wasm_rt_tailcallee_t* next) +#else +#define WEAK_FUNC_DECL(func, fallback) \ + __attribute__((weak)) void func(void** instance_ptr, void* tail_call_stack, \ + wasm_rt_tailcallee_t* next) +#endif + +#include + +#ifndef WASM_RT_SIMD_TYPE_DEFINED +#define WASM_RT_SIMD_TYPE_DEFINED +typedef simde_v128_t v128; +#endif + +#if WASM_RT_MEMCHECK_BOUNDS_CHECK || \ + WASM_RT_NONCONFORMING_ALLOW_OOB_READ_ELIMINATION +#define SIMD_FORCE_READ(var) +#elif defined(__GNUC__) && WASM_RT_MEMCHECK_GUARD_PAGES +#if defined(__x86_64__) +#define SIMD_FORCE_READ(var) __asm__("" ::"x"(var)); +#elif defined(__aarch64__) +#define SIMD_FORCE_READ(var) __asm__("" ::"w"(var)); +#elif defined(__riscv) +#define SIMD_FORCE_READ(var) __asm__("" ::"vr"(var)); +#elif defined(__s390x__) +#define SIMD_FORCE_READ(var) __asm__("" ::"d"(var)); +#else +#define SIMD_FORCE_READ(var) __asm__("" ::"f"(var)); +#endif +#else +#error \ + "Guard page mode for Wasm not supported on this platform because SIMD_FORCE_READ could not be instantiated." \ + "Either enable specify -DWASM_RT_NONCONFORMING_ALLOW_OOB_READ_ELIMINATION=1 during compilation or use -DWASM_RT_MEMCHECK_BOUNDS_CHECK=1 to use bounds check mode" +#endif + +// The below SIMD operations copy to a local variable first as the +// MEM_ADDR_MEMOP maybe segment pointers if WASM_RT_USE_SEGUE_FOR_THIS_MODULE is +// defined and regular pointers otherwse. memcpy into the local works correctly +// in both cases. +#define DEFINE_SIMD_LOAD_FUNC(name, func, t) \ + static inline v128 name##_unchecked( \ + uint8_t* const wasm_rt_local_memory_base, wasm_rt_memory_t* mem, \ + u64 addr) { \ + t simd_mem_value; \ + wasm_rt_memcpy(&simd_mem_value, MEM_ADDR_MEMOP(mem, addr, sizeof(t)), \ + sizeof(t)); \ + v128 result = func(&simd_mem_value); \ + SIMD_FORCE_READ(result); \ + return result; \ + } \ + DEF_MEM_CHECKS0(name, _, t, return, v128); + +#define DEFINE_SIMD_LOAD_LANE(name, func, t, lane) \ + static inline v128 name##_unchecked( \ + uint8_t* const wasm_rt_local_memory_base, wasm_rt_memory_t* mem, \ + u64 addr, v128 vec) { \ + t simd_mem_value; \ + wasm_rt_memcpy(&simd_mem_value, MEM_ADDR_MEMOP(mem, addr, sizeof(t)), \ + sizeof(t)); \ + v128 result = func(&simd_mem_value, vec, lane); \ + SIMD_FORCE_READ(result); \ + return result; \ + } \ + DEF_MEM_CHECKS1(name, _, t, return, v128, v128); + +#define DEFINE_SIMD_STORE(name, t) \ + static inline void name##_unchecked( \ + uint8_t* const wasm_rt_local_memory_base, wasm_rt_memory_t* mem, \ + u64 addr, v128 value) { \ + t simd_mem_value; \ + simde_wasm_v128_store(&simd_mem_value, value); \ + wasm_rt_memcpy(MEM_ADDR_MEMOP(mem, addr, sizeof(t)), &simd_mem_value, \ + sizeof(t)); \ + } \ + DEF_MEM_CHECKS1(name, _, t, , void, v128); + +#define DEFINE_SIMD_STORE_LANE(name, func, t, lane) \ + static inline void name##_unchecked( \ + uint8_t* const wasm_rt_local_memory_base, wasm_rt_memory_t* mem, \ + u64 addr, v128 value) { \ + t simd_mem_value; \ + func(&simd_mem_value, value, lane); \ + wasm_rt_memcpy(MEM_ADDR_MEMOP(mem, addr, sizeof(t)), &simd_mem_value, \ + sizeof(t)); \ + } \ + DEF_MEM_CHECKS1(name, _, t, , void, v128); + +// clang-format off +#if WABT_BIG_ENDIAN +static inline v128 v128_impl_load32_zero(const void* a) { + return simde_wasm_i8x16_swizzle( + simde_wasm_v128_load32_zero(a), + simde_wasm_i8x16_const(12,13,14,15,8,9,10,11,4,5,6,7,0,1,2,3)); +} +static inline v128 v128_impl_load64_zero(const void* a) { + return simde_wasm_i8x16_swizzle( + simde_wasm_v128_load64_zero(a), + simde_wasm_i8x16_const(8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7)); +} +#else +#define v128_impl_load32_zero simde_wasm_v128_load32_zero +#define v128_impl_load64_zero simde_wasm_v128_load64_zero +#endif + +DEFINE_SIMD_LOAD_FUNC(v128_load, simde_wasm_v128_load, v128) + +DEFINE_SIMD_LOAD_FUNC(v128_load8_splat, simde_wasm_v128_load8_splat, u8) +DEFINE_SIMD_LOAD_FUNC(v128_load16_splat, simde_wasm_v128_load16_splat, u16) +DEFINE_SIMD_LOAD_FUNC(v128_load32_splat, simde_wasm_v128_load32_splat, u32) +DEFINE_SIMD_LOAD_FUNC(v128_load64_splat, simde_wasm_v128_load64_splat, u64) + +DEFINE_SIMD_LOAD_FUNC(i16x8_load8x8, simde_wasm_i16x8_load8x8, u64) +DEFINE_SIMD_LOAD_FUNC(u16x8_load8x8, simde_wasm_u16x8_load8x8, u64) +DEFINE_SIMD_LOAD_FUNC(i32x4_load16x4, simde_wasm_i32x4_load16x4, u64) +DEFINE_SIMD_LOAD_FUNC(u32x4_load16x4, simde_wasm_u32x4_load16x4, u64) +DEFINE_SIMD_LOAD_FUNC(i64x2_load32x2, simde_wasm_i64x2_load32x2, u64) +DEFINE_SIMD_LOAD_FUNC(u64x2_load32x2, simde_wasm_u64x2_load32x2, u64) + +DEFINE_SIMD_LOAD_FUNC(v128_load32_zero, v128_impl_load32_zero, u32) +DEFINE_SIMD_LOAD_FUNC(v128_load64_zero, v128_impl_load64_zero, u64) + +#if WABT_BIG_ENDIAN +DEFINE_SIMD_LOAD_LANE(v128_load8_lane0, simde_wasm_v128_load8_lane, u8, 15) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane1, simde_wasm_v128_load8_lane, u8, 14) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane2, simde_wasm_v128_load8_lane, u8, 13) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane3, simde_wasm_v128_load8_lane, u8, 12) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane4, simde_wasm_v128_load8_lane, u8, 11) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane5, simde_wasm_v128_load8_lane, u8, 10) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane6, simde_wasm_v128_load8_lane, u8, 9) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane7, simde_wasm_v128_load8_lane, u8, 8) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane8, simde_wasm_v128_load8_lane, u8, 7) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane9, simde_wasm_v128_load8_lane, u8, 6) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane10, simde_wasm_v128_load8_lane, u8, 5) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane11, simde_wasm_v128_load8_lane, u8, 4) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane12, simde_wasm_v128_load8_lane, u8, 3) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane13, simde_wasm_v128_load8_lane, u8, 2) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane14, simde_wasm_v128_load8_lane, u8, 1) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane15, simde_wasm_v128_load8_lane, u8, 0) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane0, simde_wasm_v128_load16_lane, u16, 7) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane1, simde_wasm_v128_load16_lane, u16, 6) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane2, simde_wasm_v128_load16_lane, u16, 5) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane3, simde_wasm_v128_load16_lane, u16, 4) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane4, simde_wasm_v128_load16_lane, u16, 3) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane5, simde_wasm_v128_load16_lane, u16, 2) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane6, simde_wasm_v128_load16_lane, u16, 1) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane7, simde_wasm_v128_load16_lane, u16, 0) +DEFINE_SIMD_LOAD_LANE(v128_load32_lane0, simde_wasm_v128_load32_lane, u32, 3) +DEFINE_SIMD_LOAD_LANE(v128_load32_lane1, simde_wasm_v128_load32_lane, u32, 2) +DEFINE_SIMD_LOAD_LANE(v128_load32_lane2, simde_wasm_v128_load32_lane, u32, 1) +DEFINE_SIMD_LOAD_LANE(v128_load32_lane3, simde_wasm_v128_load32_lane, u32, 0) +DEFINE_SIMD_LOAD_LANE(v128_load64_lane0, simde_wasm_v128_load64_lane, u64, 1) +DEFINE_SIMD_LOAD_LANE(v128_load64_lane1, simde_wasm_v128_load64_lane, u64, 0) +#else +DEFINE_SIMD_LOAD_LANE(v128_load8_lane0, simde_wasm_v128_load8_lane, u8, 0) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane1, simde_wasm_v128_load8_lane, u8, 1) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane2, simde_wasm_v128_load8_lane, u8, 2) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane3, simde_wasm_v128_load8_lane, u8, 3) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane4, simde_wasm_v128_load8_lane, u8, 4) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane5, simde_wasm_v128_load8_lane, u8, 5) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane6, simde_wasm_v128_load8_lane, u8, 6) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane7, simde_wasm_v128_load8_lane, u8, 7) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane8, simde_wasm_v128_load8_lane, u8, 8) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane9, simde_wasm_v128_load8_lane, u8, 9) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane10, simde_wasm_v128_load8_lane, u8, 10) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane11, simde_wasm_v128_load8_lane, u8, 11) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane12, simde_wasm_v128_load8_lane, u8, 12) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane13, simde_wasm_v128_load8_lane, u8, 13) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane14, simde_wasm_v128_load8_lane, u8, 14) +DEFINE_SIMD_LOAD_LANE(v128_load8_lane15, simde_wasm_v128_load8_lane, u8, 15) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane0, simde_wasm_v128_load16_lane, u16, 0) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane1, simde_wasm_v128_load16_lane, u16, 1) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane2, simde_wasm_v128_load16_lane, u16, 2) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane3, simde_wasm_v128_load16_lane, u16, 3) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane4, simde_wasm_v128_load16_lane, u16, 4) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane5, simde_wasm_v128_load16_lane, u16, 5) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane6, simde_wasm_v128_load16_lane, u16, 6) +DEFINE_SIMD_LOAD_LANE(v128_load16_lane7, simde_wasm_v128_load16_lane, u16, 7) +DEFINE_SIMD_LOAD_LANE(v128_load32_lane0, simde_wasm_v128_load32_lane, u32, 0) +DEFINE_SIMD_LOAD_LANE(v128_load32_lane1, simde_wasm_v128_load32_lane, u32, 1) +DEFINE_SIMD_LOAD_LANE(v128_load32_lane2, simde_wasm_v128_load32_lane, u32, 2) +DEFINE_SIMD_LOAD_LANE(v128_load32_lane3, simde_wasm_v128_load32_lane, u32, 3) +DEFINE_SIMD_LOAD_LANE(v128_load64_lane0, simde_wasm_v128_load64_lane, u64, 0) +DEFINE_SIMD_LOAD_LANE(v128_load64_lane1, simde_wasm_v128_load64_lane, u64, 1) +#endif + +DEFINE_SIMD_STORE(v128_store, v128) + +#if WABT_BIG_ENDIAN +DEFINE_SIMD_STORE_LANE(v128_store8_lane0, simde_wasm_v128_store8_lane, u8, 15) +DEFINE_SIMD_STORE_LANE(v128_store8_lane1, simde_wasm_v128_store8_lane, u8, 14) +DEFINE_SIMD_STORE_LANE(v128_store8_lane2, simde_wasm_v128_store8_lane, u8, 13) +DEFINE_SIMD_STORE_LANE(v128_store8_lane3, simde_wasm_v128_store8_lane, u8, 12) +DEFINE_SIMD_STORE_LANE(v128_store8_lane4, simde_wasm_v128_store8_lane, u8, 11) +DEFINE_SIMD_STORE_LANE(v128_store8_lane5, simde_wasm_v128_store8_lane, u8, 10) +DEFINE_SIMD_STORE_LANE(v128_store8_lane6, simde_wasm_v128_store8_lane, u8, 9) +DEFINE_SIMD_STORE_LANE(v128_store8_lane7, simde_wasm_v128_store8_lane, u8, 8) +DEFINE_SIMD_STORE_LANE(v128_store8_lane8, simde_wasm_v128_store8_lane, u8, 7) +DEFINE_SIMD_STORE_LANE(v128_store8_lane9, simde_wasm_v128_store8_lane, u8, 6) +DEFINE_SIMD_STORE_LANE(v128_store8_lane10, simde_wasm_v128_store8_lane, u8, 5) +DEFINE_SIMD_STORE_LANE(v128_store8_lane11, simde_wasm_v128_store8_lane, u8, 4) +DEFINE_SIMD_STORE_LANE(v128_store8_lane12, simde_wasm_v128_store8_lane, u8, 3) +DEFINE_SIMD_STORE_LANE(v128_store8_lane13, simde_wasm_v128_store8_lane, u8, 2) +DEFINE_SIMD_STORE_LANE(v128_store8_lane14, simde_wasm_v128_store8_lane, u8, 1) +DEFINE_SIMD_STORE_LANE(v128_store8_lane15, simde_wasm_v128_store8_lane, u8, 0) +DEFINE_SIMD_STORE_LANE(v128_store16_lane0, simde_wasm_v128_store16_lane, u16, 7) +DEFINE_SIMD_STORE_LANE(v128_store16_lane1, simde_wasm_v128_store16_lane, u16, 6) +DEFINE_SIMD_STORE_LANE(v128_store16_lane2, simde_wasm_v128_store16_lane, u16, 5) +DEFINE_SIMD_STORE_LANE(v128_store16_lane3, simde_wasm_v128_store16_lane, u16, 4) +DEFINE_SIMD_STORE_LANE(v128_store16_lane4, simde_wasm_v128_store16_lane, u16, 3) +DEFINE_SIMD_STORE_LANE(v128_store16_lane5, simde_wasm_v128_store16_lane, u16, 2) +DEFINE_SIMD_STORE_LANE(v128_store16_lane6, simde_wasm_v128_store16_lane, u16, 1) +DEFINE_SIMD_STORE_LANE(v128_store16_lane7, simde_wasm_v128_store16_lane, u16, 0) +DEFINE_SIMD_STORE_LANE(v128_store32_lane0, simde_wasm_v128_store32_lane, u32, 3) +DEFINE_SIMD_STORE_LANE(v128_store32_lane1, simde_wasm_v128_store32_lane, u32, 2) +DEFINE_SIMD_STORE_LANE(v128_store32_lane2, simde_wasm_v128_store32_lane, u32, 1) +DEFINE_SIMD_STORE_LANE(v128_store32_lane3, simde_wasm_v128_store32_lane, u32, 0) +DEFINE_SIMD_STORE_LANE(v128_store64_lane0, simde_wasm_v128_store64_lane, u64, 1) +DEFINE_SIMD_STORE_LANE(v128_store64_lane1, simde_wasm_v128_store64_lane, u64, 0) +#else +DEFINE_SIMD_STORE_LANE(v128_store8_lane0, simde_wasm_v128_store8_lane, u8, 0) +DEFINE_SIMD_STORE_LANE(v128_store8_lane1, simde_wasm_v128_store8_lane, u8, 1) +DEFINE_SIMD_STORE_LANE(v128_store8_lane2, simde_wasm_v128_store8_lane, u8, 2) +DEFINE_SIMD_STORE_LANE(v128_store8_lane3, simde_wasm_v128_store8_lane, u8, 3) +DEFINE_SIMD_STORE_LANE(v128_store8_lane4, simde_wasm_v128_store8_lane, u8, 4) +DEFINE_SIMD_STORE_LANE(v128_store8_lane5, simde_wasm_v128_store8_lane, u8, 5) +DEFINE_SIMD_STORE_LANE(v128_store8_lane6, simde_wasm_v128_store8_lane, u8, 6) +DEFINE_SIMD_STORE_LANE(v128_store8_lane7, simde_wasm_v128_store8_lane, u8, 7) +DEFINE_SIMD_STORE_LANE(v128_store8_lane8, simde_wasm_v128_store8_lane, u8, 8) +DEFINE_SIMD_STORE_LANE(v128_store8_lane9, simde_wasm_v128_store8_lane, u8, 9) +DEFINE_SIMD_STORE_LANE(v128_store8_lane10, simde_wasm_v128_store8_lane, u8, 10) +DEFINE_SIMD_STORE_LANE(v128_store8_lane11, simde_wasm_v128_store8_lane, u8, 11) +DEFINE_SIMD_STORE_LANE(v128_store8_lane12, simde_wasm_v128_store8_lane, u8, 12) +DEFINE_SIMD_STORE_LANE(v128_store8_lane13, simde_wasm_v128_store8_lane, u8, 13) +DEFINE_SIMD_STORE_LANE(v128_store8_lane14, simde_wasm_v128_store8_lane, u8, 14) +DEFINE_SIMD_STORE_LANE(v128_store8_lane15, simde_wasm_v128_store8_lane, u8, 15) +DEFINE_SIMD_STORE_LANE(v128_store16_lane0, simde_wasm_v128_store16_lane, u16, 0) +DEFINE_SIMD_STORE_LANE(v128_store16_lane1, simde_wasm_v128_store16_lane, u16, 1) +DEFINE_SIMD_STORE_LANE(v128_store16_lane2, simde_wasm_v128_store16_lane, u16, 2) +DEFINE_SIMD_STORE_LANE(v128_store16_lane3, simde_wasm_v128_store16_lane, u16, 3) +DEFINE_SIMD_STORE_LANE(v128_store16_lane4, simde_wasm_v128_store16_lane, u16, 4) +DEFINE_SIMD_STORE_LANE(v128_store16_lane5, simde_wasm_v128_store16_lane, u16, 5) +DEFINE_SIMD_STORE_LANE(v128_store16_lane6, simde_wasm_v128_store16_lane, u16, 6) +DEFINE_SIMD_STORE_LANE(v128_store16_lane7, simde_wasm_v128_store16_lane, u16, 7) +DEFINE_SIMD_STORE_LANE(v128_store32_lane0, simde_wasm_v128_store32_lane, u32, 0) +DEFINE_SIMD_STORE_LANE(v128_store32_lane1, simde_wasm_v128_store32_lane, u32, 1) +DEFINE_SIMD_STORE_LANE(v128_store32_lane2, simde_wasm_v128_store32_lane, u32, 2) +DEFINE_SIMD_STORE_LANE(v128_store32_lane3, simde_wasm_v128_store32_lane, u32, 3) +DEFINE_SIMD_STORE_LANE(v128_store64_lane0, simde_wasm_v128_store64_lane, u64, 0) +DEFINE_SIMD_STORE_LANE(v128_store64_lane1, simde_wasm_v128_store64_lane, u64, 1) +#endif + +#if WABT_BIG_ENDIAN +#define v128_const(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) simde_wasm_i8x16_const(p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a) +#define v128_i8x16_extract_lane(v, l) simde_wasm_i8x16_extract_lane(v, 15-(l)) +#define v128_u8x16_extract_lane(v, l) simde_wasm_u8x16_extract_lane(v, 15-(l)) +#define v128_i16x8_extract_lane(v, l) simde_wasm_i16x8_extract_lane(v, 7-(l)) +#define v128_u16x8_extract_lane(v, l) simde_wasm_u16x8_extract_lane(v, 7-(l)) +#define v128_i32x4_extract_lane(v, l) simde_wasm_i32x4_extract_lane(v, 3-(l)) +#define v128_i64x2_extract_lane(v, l) simde_wasm_i64x2_extract_lane(v, 1-(l)) +#define v128_f32x4_extract_lane(v, l) simde_wasm_f32x4_extract_lane(v, 3-(l)) +#define v128_f64x2_extract_lane(v, l) simde_wasm_f64x2_extract_lane(v, 1-(l)) +#define v128_i8x16_replace_lane(v, l, x) simde_wasm_i8x16_replace_lane(v, 15-(l), x) +#define v128_u8x16_replace_lane(v, l, x) simde_wasm_u8x16_replace_lane(v, 15-(l), x) +#define v128_i16x8_replace_lane(v, l, x) simde_wasm_i16x8_replace_lane(v, 7-(l), x) +#define v128_u16x8_replace_lane(v, l, x) simde_wasm_u16x8_replace_lane(v, 7-(l), x) +#define v128_i32x4_replace_lane(v, l, x) simde_wasm_i32x4_replace_lane(v, 3-(l), x) +#define v128_i64x2_replace_lane(v, l, x) simde_wasm_i64x2_replace_lane(v, 1-(l), x) +#define v128_f32x4_replace_lane(v, l, x) simde_wasm_f32x4_replace_lane(v, 3-(l), x) +#define v128_f64x2_replace_lane(v, l, x) simde_wasm_f64x2_replace_lane(v, 1-(l), x) +#define v128_i8x16_bitmask(v) simde_wasm_i8x16_bitmask(simde_wasm_i8x16_swizzle(v, simde_wasm_i8x16_const(15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0))) +#define v128_i16x8_bitmask(v) simde_wasm_i16x8_bitmask(simde_wasm_i8x16_swizzle(v, simde_wasm_i8x16_const(14,15,12,13,10,11,8,9,6,7,4,5,2,3,0,1))) +#define v128_i32x4_bitmask(v) simde_wasm_i32x4_bitmask(simde_wasm_i8x16_swizzle(v, simde_wasm_i8x16_const(12,13,14,15,8,9,10,11,4,5,6,7,0,1,2,3))) +#define v128_i64x2_bitmask(v) simde_wasm_i64x2_bitmask(simde_wasm_i8x16_swizzle(v, simde_wasm_i8x16_const(8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7))) +#define v128_i8x16_swizzle(v1, v2) simde_wasm_i8x16_swizzle(v1, simde_wasm_v128_xor(v2, simde_wasm_i8x16_splat(15))) +#define v128_i8x16_shuffle(v1,v2,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) simde_wasm_i8x16_shuffle(v2,v1,31-(p),31-(o),31-(n),31-(m),31-(l),31-(k),31-(j),31-(i),31-(h),31-(g),31-(f),31-(e),31-(d),31-(c),31-(b),31-(a)) +#define v128_i16x8_extmul_high_i8x16 simde_wasm_i16x8_extmul_low_i8x16 +#define v128_u16x8_extmul_high_u8x16 simde_wasm_u16x8_extmul_low_u8x16 +#define v128_i16x8_extmul_low_i8x16 simde_wasm_i16x8_extmul_high_i8x16 +#define v128_u16x8_extmul_low_u8x16 simde_wasm_u16x8_extmul_high_u8x16 +#define v128_i32x4_extmul_high_i16x8 simde_wasm_i32x4_extmul_low_i16x8 +#define v128_u32x4_extmul_high_u16x8 simde_wasm_u32x4_extmul_low_u16x8 +#define v128_i32x4_extmul_low_i16x8 simde_wasm_i32x4_extmul_high_i16x8 +#define v128_u32x4_extmul_low_u16x8 simde_wasm_u32x4_extmul_high_u16x8 +#define v128_i64x2_extmul_high_i32x4 simde_wasm_i64x2_extmul_low_i32x4 +#define v128_u64x2_extmul_high_u32x4 simde_wasm_u64x2_extmul_low_u32x4 +#define v128_i64x2_extmul_low_i32x4 simde_wasm_i64x2_extmul_high_i32x4 +#define v128_u64x2_extmul_low_u32x4 simde_wasm_u64x2_extmul_high_u32x4 +#define v128_i16x8_extend_high_i8x16 simde_wasm_i16x8_extend_low_i8x16 +#define v128_u16x8_extend_high_u8x16 simde_wasm_u16x8_extend_low_u8x16 +#define v128_i16x8_extend_low_i8x16 simde_wasm_i16x8_extend_high_i8x16 +#define v128_u16x8_extend_low_u8x16 simde_wasm_u16x8_extend_high_u8x16 +#define v128_i32x4_extend_high_i16x8 simde_wasm_i32x4_extend_low_i16x8 +#define v128_u32x4_extend_high_u16x8 simde_wasm_u32x4_extend_low_u16x8 +#define v128_i32x4_extend_low_i16x8 simde_wasm_i32x4_extend_high_i16x8 +#define v128_u32x4_extend_low_u16x8 simde_wasm_u32x4_extend_high_u16x8 +#define v128_i64x2_extend_high_i32x4 simde_wasm_i64x2_extend_low_i32x4 +#define v128_u64x2_extend_high_u32x4 simde_wasm_u64x2_extend_low_u32x4 +#define v128_i64x2_extend_low_i32x4 simde_wasm_i64x2_extend_high_i32x4 +#define v128_u64x2_extend_low_u32x4 simde_wasm_u64x2_extend_high_u32x4 +#define v128_i32x4_trunc_sat_f64x2_zero(a) \ + simde_wasm_i8x16_swizzle( \ + simde_wasm_i32x4_trunc_sat_f64x2_zero(a), \ + simde_wasm_i8x16_const(8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7)) +#define v128_u32x4_trunc_sat_f64x2_zero(a) \ + simde_wasm_i8x16_swizzle( \ + simde_wasm_u32x4_trunc_sat_f64x2_zero(a), \ + simde_wasm_i8x16_const(8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7)) +#define v128_i16x8_narrow_i32x4(a,b) simde_wasm_i16x8_narrow_i32x4(b,a) +#define v128_u16x8_narrow_i32x4(a,b) simde_wasm_u16x8_narrow_i32x4(b,a) +#define v128_i8x16_narrow_i16x8(a,b) simde_wasm_i8x16_narrow_i16x8(b,a) +#define v128_u8x16_narrow_i16x8(a,b) simde_wasm_u8x16_narrow_i16x8(b,a) +#define v128_f64x2_promote_low_f32x4(a) \ + simde_wasm_f64x2_promote_low_f32x4(simde_wasm_i8x16_swizzle( \ + a, \ + simde_wasm_i8x16_const(8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7))) +#define v128_f32x4_demote_f64x2_zero(a) \ + simde_wasm_i8x16_swizzle( \ + simde_wasm_f32x4_demote_f64x2_zero(a), \ + simde_wasm_i8x16_const(8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7)) +#define v128_f64x2_convert_low_i32x4(a) \ + simde_wasm_f64x2_convert_low_i32x4(simde_wasm_i8x16_swizzle( \ + a, \ + simde_wasm_i8x16_const(8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7))) +#define v128_f64x2_convert_low_u32x4(a) \ + simde_wasm_f64x2_convert_low_u32x4(simde_wasm_i8x16_swizzle( \ + a, \ + simde_wasm_i8x16_const(8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7))) +#else +#define v128_const simde_wasm_i8x16_const +#define v128_i8x16_extract_lane simde_wasm_i8x16_extract_lane +#define v128_u8x16_extract_lane simde_wasm_u8x16_extract_lane +#define v128_i16x8_extract_lane simde_wasm_i16x8_extract_lane +#define v128_u16x8_extract_lane simde_wasm_u16x8_extract_lane +#define v128_i32x4_extract_lane simde_wasm_i32x4_extract_lane +#define v128_i64x2_extract_lane simde_wasm_i64x2_extract_lane +#define v128_f32x4_extract_lane simde_wasm_f32x4_extract_lane +#define v128_f64x2_extract_lane simde_wasm_f64x2_extract_lane +#define v128_i8x16_replace_lane simde_wasm_i8x16_replace_lane +#define v128_u8x16_replace_lane simde_wasm_u8x16_replace_lane +#define v128_i16x8_replace_lane simde_wasm_i16x8_replace_lane +#define v128_u16x8_replace_lane simde_wasm_u16x8_replace_lane +#define v128_i32x4_replace_lane simde_wasm_i32x4_replace_lane +#define v128_i64x2_replace_lane simde_wasm_i64x2_replace_lane +#define v128_f32x4_replace_lane simde_wasm_f32x4_replace_lane +#define v128_f64x2_replace_lane simde_wasm_f64x2_replace_lane +#define v128_i8x16_bitmask simde_wasm_i8x16_bitmask +#define v128_i16x8_bitmask simde_wasm_i16x8_bitmask +#define v128_i32x4_bitmask simde_wasm_i32x4_bitmask +#define v128_i64x2_bitmask simde_wasm_i64x2_bitmask +#define v128_i8x16_swizzle simde_wasm_i8x16_swizzle +#define v128_i8x16_shuffle simde_wasm_i8x16_shuffle +#define v128_i16x8_extmul_high_i8x16 simde_wasm_i16x8_extmul_high_i8x16 +#define v128_u16x8_extmul_high_u8x16 simde_wasm_u16x8_extmul_high_u8x16 +#define v128_i16x8_extmul_low_i8x16 simde_wasm_i16x8_extmul_low_i8x16 +#define v128_u16x8_extmul_low_u8x16 simde_wasm_u16x8_extmul_low_u8x16 +#define v128_i32x4_extmul_high_i16x8 simde_wasm_i32x4_extmul_high_i16x8 +#define v128_u32x4_extmul_high_u16x8 simde_wasm_u32x4_extmul_high_u16x8 +#define v128_i32x4_extmul_low_i16x8 simde_wasm_i32x4_extmul_low_i16x8 +#define v128_u32x4_extmul_low_u16x8 simde_wasm_u32x4_extmul_low_u16x8 +#define v128_i64x2_extmul_high_i32x4 simde_wasm_i64x2_extmul_high_i32x4 +#define v128_u64x2_extmul_high_u32x4 simde_wasm_u64x2_extmul_high_u32x4 +#define v128_i64x2_extmul_low_i32x4 simde_wasm_i64x2_extmul_low_i32x4 +#define v128_u64x2_extmul_low_u32x4 simde_wasm_u64x2_extmul_low_u32x4 +#define v128_i16x8_extend_high_i8x16 simde_wasm_i16x8_extend_high_i8x16 +#define v128_u16x8_extend_high_u8x16 simde_wasm_u16x8_extend_high_u8x16 +#define v128_i16x8_extend_low_i8x16 simde_wasm_i16x8_extend_low_i8x16 +#define v128_u16x8_extend_low_u8x16 simde_wasm_u16x8_extend_low_u8x16 +#define v128_i32x4_extend_high_i16x8 simde_wasm_i32x4_extend_high_i16x8 +#define v128_u32x4_extend_high_u16x8 simde_wasm_u32x4_extend_high_u16x8 +#define v128_i32x4_extend_low_i16x8 simde_wasm_i32x4_extend_low_i16x8 +#define v128_u32x4_extend_low_u16x8 simde_wasm_u32x4_extend_low_u16x8 +#define v128_i64x2_extend_high_i32x4 simde_wasm_i64x2_extend_high_i32x4 +#define v128_u64x2_extend_high_u32x4 simde_wasm_u64x2_extend_high_u32x4 +#define v128_i64x2_extend_low_i32x4 simde_wasm_i64x2_extend_low_i32x4 +#define v128_u64x2_extend_low_u32x4 simde_wasm_u64x2_extend_low_u32x4 +#define v128_i32x4_trunc_sat_f64x2_zero simde_wasm_i32x4_trunc_sat_f64x2_zero +#define v128_u32x4_trunc_sat_f64x2_zero simde_wasm_u32x4_trunc_sat_f64x2_zero +#define v128_i16x8_narrow_i32x4 simde_wasm_i16x8_narrow_i32x4 +#define v128_u16x8_narrow_i32x4 simde_wasm_u16x8_narrow_i32x4 +#define v128_i8x16_narrow_i16x8 simde_wasm_i8x16_narrow_i16x8 +#define v128_u8x16_narrow_i16x8 simde_wasm_u8x16_narrow_i16x8 +#define v128_f64x2_promote_low_f32x4 simde_wasm_f64x2_promote_low_f32x4 +#define v128_f32x4_demote_f64x2_zero simde_wasm_f32x4_demote_f64x2_zero +#define v128_f64x2_convert_low_i32x4 simde_wasm_f64x2_convert_low_i32x4 +#define v128_f64x2_convert_low_u32x4 simde_wasm_f64x2_convert_low_u32x4 +#endif +// clang-format on + + +static u32 w2c_highlights_f2(w2c_highlights*, u32); +static void w2c_highlights_f3(w2c_highlights*); +static void w2c_highlights_f4(w2c_highlights*); +static u32 w2c_highlights_f5(w2c_highlights*, u32, u32, u32, u32, u32); +static void w2c_highlights_f6(w2c_highlights*); +static void w2c_highlights_f7(w2c_highlights*, u32); +static u32 w2c_highlights_f8(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f9(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f10(w2c_highlights*, u32, u32); +static void w2c_highlights_f11(w2c_highlights*, u32); +static void w2c_highlights_f12(w2c_highlights*, u32); +static void w2c_highlights_f13(w2c_highlights*, u32); +static void w2c_highlights_f14(w2c_highlights*, u32, u32); +static void w2c_highlights_f15(w2c_highlights*, u32); +static void w2c_highlights_f16(w2c_highlights*, u32, u32); +static void w2c_highlights_f17(w2c_highlights*, u32); +static void w2c_highlights_f18(w2c_highlights*); +static void w2c_highlights_f19(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f20(w2c_highlights*, u32); +static void w2c_highlights_f21(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f22(w2c_highlights*, u32, u32); +static void w2c_highlights_f23(w2c_highlights*); +static u32 w2c_highlights_f24(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f25(w2c_highlights*, u32); +static void w2c_highlights_f26(w2c_highlights*, u32); +static void w2c_highlights_f27(w2c_highlights*, u32, u32); +static void w2c_highlights_f28(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f29(w2c_highlights*, u32, u32); +static void w2c_highlights_f30(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f31(w2c_highlights*, u32, u32); +static void w2c_highlights_f32(w2c_highlights*, u32); +static void w2c_highlights_f33(w2c_highlights*); +static void w2c_highlights_f34(w2c_highlights*, u32); +static void w2c_highlights_f35(w2c_highlights*); +static void w2c_highlights_f36(w2c_highlights*); +static u32 w2c_highlights_f37(w2c_highlights*); +static void w2c_highlights_f38(w2c_highlights*); +static void w2c_highlights_f39(w2c_highlights*); +static void w2c_highlights_f40(w2c_highlights*, u32); +static void w2c_highlights_f41(w2c_highlights*, u32); +static void w2c_highlights_f42(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f43(w2c_highlights*, u32); +static u32 w2c_highlights_f44(w2c_highlights*, u32); +static u32 w2c_highlights_f45(w2c_highlights*, u32); +static u32 w2c_highlights_f46(w2c_highlights*, u32); +static u32 w2c_highlights_f47(w2c_highlights*, u32); +static void w2c_highlights_f48(w2c_highlights*); +static void w2c_highlights_f49(w2c_highlights*, u32); +static void w2c_highlights_f50(w2c_highlights*, u32); +static u32 w2c_highlights_f51(w2c_highlights*, u32); +static u32 w2c_highlights_f52(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f53(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f54(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f55(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f56(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f57(w2c_highlights*); +static u32 w2c_highlights_f58(w2c_highlights*, u32); +static u32 w2c_highlights_f59(w2c_highlights*, u32); +static void w2c_highlights_f60(w2c_highlights*, u32, u32); +static void w2c_highlights_f61(w2c_highlights*, u32, u32); +static void w2c_highlights_f62(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f63(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f64(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f65(w2c_highlights*, u32); +static u32 w2c_highlights_f66(w2c_highlights*, u32, u32); +static void w2c_highlights_f67(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f68(w2c_highlights*, u32); +static u32 w2c_highlights_f69(w2c_highlights*); +static u32 w2c_highlights_f70(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f71(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f72(w2c_highlights*); +static u32 w2c_highlights_f73(w2c_highlights*, u32); +static u32 w2c_highlights_f74(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f75(w2c_highlights*, u32, u32, u32, u32, u32); +static u32 w2c_highlights_f76(w2c_highlights*, u32, u32, u32, u32, u32); +static u32 w2c_highlights_f77(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f78(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f79(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f80(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f81(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f82(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f83(w2c_highlights*, u32); +static u32 w2c_highlights_f84(w2c_highlights*, u32); +static u32 w2c_highlights_f85(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f86(w2c_highlights*, u32); +static void w2c_highlights_f87(w2c_highlights*); +static void w2c_highlights_f88(w2c_highlights*); +static u32 w2c_highlights_f89(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f90(w2c_highlights*, u32, u32); +static void w2c_highlights_f91(w2c_highlights*); +static void w2c_highlights_f92(w2c_highlights*); +static void w2c_highlights_f93(w2c_highlights*); +static void w2c_highlights_f94(w2c_highlights*); +static u32 w2c_highlights_f95(w2c_highlights*, u32); +static u32 w2c_highlights_f96(w2c_highlights*, u32); +static void w2c_highlights_f97(w2c_highlights*); +static u32 w2c_highlights_f98(w2c_highlights*, u32, u32); +static void w2c_highlights_f99(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f100(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f101(w2c_highlights*, u32); +static void w2c_highlights_f102(w2c_highlights*); +static u32 w2c_highlights_f103(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f104(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f105(w2c_highlights*); +static void w2c_highlights_f106(w2c_highlights*, u32); +static void w2c_highlights_f107(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f108(w2c_highlights*, u32); +static u32 w2c_highlights_f109(w2c_highlights*, u32); +static u32 w2c_highlights_f110(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f111(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f112(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f113(w2c_highlights*, u32); +static void w2c_highlights_f114(w2c_highlights*, u32); +static void w2c_highlights_f115(w2c_highlights*, u32); +static void w2c_highlights_f116(w2c_highlights*, u32); +static void w2c_highlights_f117(w2c_highlights*, u32); +static void w2c_highlights_f118(w2c_highlights*); +static u32 w2c_highlights_f119(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f120(w2c_highlights*, u32); +static u32 w2c_highlights_f121(w2c_highlights*, u32); +static u32 w2c_highlights_f122(w2c_highlights*, u32); +static u32 w2c_highlights_f123(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f124(w2c_highlights*, u32, u32); +static void w2c_highlights_f125(w2c_highlights*, u32, u32); +static void w2c_highlights_f126(w2c_highlights*, u32); +static u32 w2c_highlights_f127(w2c_highlights*, u32, u32); +static void w2c_highlights_f128(w2c_highlights*); +static u32 w2c_highlights_f129(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f130(w2c_highlights*); +static u32 w2c_highlights_f131(w2c_highlights*); +static void w2c_highlights_f132(w2c_highlights*, u32); +static void w2c_highlights_f133(w2c_highlights*); +static u32 w2c_highlights_f134(w2c_highlights*, u32); +static u32 w2c_highlights_f135(w2c_highlights*, u32, u32); +static void w2c_highlights_f136(w2c_highlights*); +static u32 w2c_highlights_f137(w2c_highlights*, u32); +static u32 w2c_highlights_f138(w2c_highlights*, u32); +static u32 w2c_highlights_f139(w2c_highlights*, u32); +static u32 w2c_highlights_f140(w2c_highlights*); +static u32 w2c_highlights_f141(w2c_highlights*, u32); +static u32 w2c_highlights_f142(w2c_highlights*, u32); +static u32 w2c_highlights_f143(w2c_highlights*); +static u32 w2c_highlights_f144(w2c_highlights*, u32); +static void w2c_highlights_f145(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f146(w2c_highlights*, u32, u32); +static void w2c_highlights_f147(w2c_highlights*, u32, u32, u32, u32, u32); +static void w2c_highlights_f148(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f149(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f150(w2c_highlights*, u32, u32); +static void w2c_highlights_f151(w2c_highlights*); +static void w2c_highlights_f152(w2c_highlights*, u32); +static void w2c_highlights_f153(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f154(w2c_highlights*); +static u32 w2c_highlights_f155(w2c_highlights*); +static u32 w2c_highlights_f156(w2c_highlights*); +static void w2c_highlights_f157(w2c_highlights*, u32); +static void w2c_highlights_f158(w2c_highlights*, u32); +static u32 w2c_highlights_f159(w2c_highlights*, u32); +static void w2c_highlights_f160(w2c_highlights*); +static void w2c_highlights_f161(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f162(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f163(w2c_highlights*, u32); +static u32 w2c_highlights_f164(w2c_highlights*, u32); +static u32 w2c_highlights_f165(w2c_highlights*, u32); +static u32 w2c_highlights_f166(w2c_highlights*, u32); +static u32 w2c_highlights_f167(w2c_highlights*, u32); +static u32 w2c_highlights_f168(w2c_highlights*); +static void w2c_highlights_f169(w2c_highlights*); +static u32 w2c_highlights_f170(w2c_highlights*); +static u32 w2c_highlights_f171(w2c_highlights*, u32); +static void w2c_highlights_f172(w2c_highlights*, u32); +static void w2c_highlights_f173(w2c_highlights*); +static u32 w2c_highlights_f174(w2c_highlights*, u32); +static u32 w2c_highlights_f175(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f176(w2c_highlights*, u32); +static u32 w2c_highlights_f177(w2c_highlights*, u32); +static u32 w2c_highlights_f178(w2c_highlights*, u32); +static u32 w2c_highlights_f179(w2c_highlights*, u32, u32, u32, u32, u32); +static void w2c_highlights_f180(w2c_highlights*); +static u64 w2c_highlights_f181(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f182(w2c_highlights*, u32); +static u32 w2c_highlights_f183(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f184(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f185(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f186(w2c_highlights*, u32); +static void w2c_highlights_f187(w2c_highlights*, u32, u32); +static void w2c_highlights_f188(w2c_highlights*); +static void w2c_highlights_f189(w2c_highlights*); +static void w2c_highlights_f190(w2c_highlights*, u32); +static void w2c_highlights_f191(w2c_highlights*, u32); +static void w2c_highlights_f192(w2c_highlights*, u32, u32); +static void w2c_highlights_f193(w2c_highlights*); +static void w2c_highlights_f194(w2c_highlights*, u32); +static u32 w2c_highlights_f195(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f196(w2c_highlights*, u32); +static u32 w2c_highlights_f197(w2c_highlights*, u32); +static u32 w2c_highlights_f198(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f199(w2c_highlights*); +static u32 w2c_highlights_f200(w2c_highlights*, u32, u32); +static void w2c_highlights_f201(w2c_highlights*, u32); +static void w2c_highlights_f202(w2c_highlights*); +static void w2c_highlights_f203(w2c_highlights*); +static u32 w2c_highlights_f204(w2c_highlights*, u32); +static u32 w2c_highlights_f205(w2c_highlights*, u32); +static u32 w2c_highlights_f206(w2c_highlights*); +static u32 w2c_highlights_f207(w2c_highlights*, u32); +static void w2c_highlights_f208(w2c_highlights*, u32); +static void w2c_highlights_f209(w2c_highlights*); +static u32 w2c_highlights_f210(w2c_highlights*, u32); +static u32 w2c_highlights_f211(w2c_highlights*); +static void w2c_highlights_f212(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f213(w2c_highlights*); +static void w2c_highlights_f214(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f215(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f216(w2c_highlights*, u32, u32, u32, u32, u32); +static void w2c_highlights_f217(w2c_highlights*, u32); +static u32 w2c_highlights_f218(w2c_highlights*, u32); +static u32 w2c_highlights_f219(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f220(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f221(w2c_highlights*, u32); +static u32 w2c_highlights_f222(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f223(w2c_highlights*, u32, u32, u32, u32, u32); +static void w2c_highlights_f224(w2c_highlights*); +static u32 w2c_highlights_f225(w2c_highlights*); +static u32 w2c_highlights_f226(w2c_highlights*, u32, u32); +static void w2c_highlights_f227(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f228(w2c_highlights*, u32, u32); +static void w2c_highlights_f229(w2c_highlights*); +static void w2c_highlights_f230(w2c_highlights*); +static void w2c_highlights_f231(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f232(w2c_highlights*); +static u32 w2c_highlights_f233(w2c_highlights*, u32); +static u32 w2c_highlights_f234(w2c_highlights*); +static u32 w2c_highlights_f235(w2c_highlights*, u32); +static u32 w2c_highlights_f236(w2c_highlights*, u32); +static u32 w2c_highlights_f237(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f238(w2c_highlights*); +static void w2c_highlights_f239(w2c_highlights*); +static u32 w2c_highlights_f240(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f241(w2c_highlights*, u32); +static void w2c_highlights_f242(w2c_highlights*); +static u32 w2c_highlights_f243(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f244(w2c_highlights*, u32); +static void w2c_highlights_f245(w2c_highlights*); +static u32 w2c_highlights_f246(w2c_highlights*, u32); +static void w2c_highlights_f247(w2c_highlights*); +static u32 w2c_highlights_f248(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f249(w2c_highlights*); +static u32 w2c_highlights_f250(w2c_highlights*, u32); +static void w2c_highlights_f251(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f252(w2c_highlights*, u32); +static void w2c_highlights_f253(w2c_highlights*); +static u32 w2c_highlights_f254(w2c_highlights*, u32); +static u32 w2c_highlights_f255(w2c_highlights*, u32); +static void w2c_highlights_f256(w2c_highlights*); +static u32 w2c_highlights_f257(w2c_highlights*, u32); +static void w2c_highlights_f258(w2c_highlights*); +static void w2c_highlights_f259(w2c_highlights*, u32); +static void w2c_highlights_f260(w2c_highlights*); +static void w2c_highlights_f261(w2c_highlights*); +static void w2c_highlights_f262(w2c_highlights*); +static u32 w2c_highlights_f263(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f264(w2c_highlights*, u32, u32); +static void w2c_highlights_f265(w2c_highlights*); +static u32 w2c_highlights_f266(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f267(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f268(w2c_highlights*); +static u32 w2c_highlights_f269(w2c_highlights*, u32); +static u32 w2c_highlights_f270(w2c_highlights*, u32); +static void w2c_highlights_f271(w2c_highlights*); +static u32 w2c_highlights_f272(w2c_highlights*, u32); +static u32 w2c_highlights_f273(w2c_highlights*, u32); +static void w2c_highlights_f274(w2c_highlights*); +static void w2c_highlights_f275(w2c_highlights*); +static u32 w2c_highlights_f276(w2c_highlights*, u32); +static void w2c_highlights_f277(w2c_highlights*); +static u32 w2c_highlights_f278(w2c_highlights*, u32); +static void w2c_highlights_f279(w2c_highlights*); +static void w2c_highlights_f280(w2c_highlights*); +static void w2c_highlights_f281(w2c_highlights*); +static u32 w2c_highlights_f282(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f283(w2c_highlights*, u32); +static u32 w2c_highlights_f284(w2c_highlights*, u32); +static void w2c_highlights_f285(w2c_highlights*); +static void w2c_highlights_f286(w2c_highlights*); +static u32 w2c_highlights_f287(w2c_highlights*, u32); +static u32 w2c_highlights_f288(w2c_highlights*, u32); +static void w2c_highlights_f289(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f290(w2c_highlights*, u32); +static u32 w2c_highlights_f291(w2c_highlights*, u32, u32); +static void w2c_highlights_f292(w2c_highlights*); +static u32 w2c_highlights_f293(w2c_highlights*, u32, u32, u32, u32, u32, u32, u32, u32); +static void w2c_highlights_f294(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f295(w2c_highlights*); +static u32 w2c_highlights_f296(w2c_highlights*, u32, u32); +static void w2c_highlights_f297(w2c_highlights*); +static void w2c_highlights_f298(w2c_highlights*); +static void w2c_highlights_f299(w2c_highlights*); +static void w2c_highlights_f300(w2c_highlights*, u32); +static void w2c_highlights_f301(w2c_highlights*); +static u32 w2c_highlights_f302(w2c_highlights*, u32); +static void w2c_highlights_f303(w2c_highlights*); +static u32 w2c_highlights_f304(w2c_highlights*, u32); +static void w2c_highlights_f305(w2c_highlights*); +static void w2c_highlights_f306(w2c_highlights*); +static u32 w2c_highlights_f307(w2c_highlights*, u32); +static void w2c_highlights_f308(w2c_highlights*); +static u32 w2c_highlights_f309(w2c_highlights*, u32); +static void w2c_highlights_f310(w2c_highlights*); +static void w2c_highlights_f311(w2c_highlights*); +static void w2c_highlights_f312(w2c_highlights*); +static void w2c_highlights_f313(w2c_highlights*); +static void w2c_highlights_f314(w2c_highlights*); +static void w2c_highlights_f315(w2c_highlights*); +static void w2c_highlights_f316(w2c_highlights*, u32); +static u32 w2c_highlights_f317(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f318(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f319(w2c_highlights*); +static void w2c_highlights_f320(w2c_highlights*); +static u32 w2c_highlights_f321(w2c_highlights*, u32); +static void w2c_highlights_f322(w2c_highlights*); +static u32 w2c_highlights_f323(w2c_highlights*, u32); +static void w2c_highlights_f324(w2c_highlights*); +static u32 w2c_highlights_f325(w2c_highlights*, u32); +static u32 w2c_highlights_f326(w2c_highlights*, u32, u32); +static void w2c_highlights_f327(w2c_highlights*); +static void w2c_highlights_f328(w2c_highlights*); +static u32 w2c_highlights_f329(w2c_highlights*, u32); +static void w2c_highlights_f330(w2c_highlights*); +static u32 w2c_highlights_f331(w2c_highlights*, u32, u32); +static void w2c_highlights_f332(w2c_highlights*); +static u32 w2c_highlights_f333(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f334(w2c_highlights*, u32); +static void w2c_highlights_f335(w2c_highlights*); +static void w2c_highlights_f336(w2c_highlights*, u32); +static u32 w2c_highlights_f337(w2c_highlights*, u32); +static void w2c_highlights_f338(w2c_highlights*); +static u32 w2c_highlights_f339(w2c_highlights*, u32); +static u32 w2c_highlights_f340(w2c_highlights*, u32); +static void w2c_highlights_f341(w2c_highlights*); +static void w2c_highlights_f342(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f343(w2c_highlights*, u32); +static u32 w2c_highlights_f344(w2c_highlights*, u32, u32); +static void w2c_highlights_f345(w2c_highlights*); +static u32 w2c_highlights_f346(w2c_highlights*, u32); +static u32 w2c_highlights_f347(w2c_highlights*, u32); +static u32 w2c_highlights_f348(w2c_highlights*, u32, u32); +static void w2c_highlights_f349(w2c_highlights*); +static u32 w2c_highlights_f350(w2c_highlights*, u32); +static u32 w2c_highlights_f351(w2c_highlights*, u32); +static void w2c_highlights_f352(w2c_highlights*); +static u32 w2c_highlights_f353(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f354(w2c_highlights*); +static u32 w2c_highlights_f355(w2c_highlights*, u32); +static void w2c_highlights_f356(w2c_highlights*); +static void w2c_highlights_f357(w2c_highlights*, u32, u32, u32, u32); +static u32 w2c_highlights_f358(w2c_highlights*, u32); +static void w2c_highlights_f359(w2c_highlights*); +static u32 w2c_highlights_f360(w2c_highlights*, u32); +static u32 w2c_highlights_f361(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f362(w2c_highlights*, u32); +static void w2c_highlights_f363(w2c_highlights*, u32); +static void w2c_highlights_f364(w2c_highlights*); +static u32 w2c_highlights_f365(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f366(w2c_highlights*, u32); +static u32 w2c_highlights_f367(w2c_highlights*, u32); +static void w2c_highlights_f368(w2c_highlights*); +static void w2c_highlights_f369(w2c_highlights*); +static u32 w2c_highlights_f370(w2c_highlights*, u32); +static void w2c_highlights_f371(w2c_highlights*); +static void w2c_highlights_f372(w2c_highlights*); +static void w2c_highlights_f373(w2c_highlights*); +static u32 w2c_highlights_f374(w2c_highlights*, u32); +static void w2c_highlights_f375(w2c_highlights*); +static void w2c_highlights_f376(w2c_highlights*); +static void w2c_highlights_f377(w2c_highlights*); +static u32 w2c_highlights_f378(w2c_highlights*); +static void w2c_highlights_f379(w2c_highlights*); +static void w2c_highlights_f380(w2c_highlights*); +static u32 w2c_highlights_f381(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f382(w2c_highlights*, u32); +static u32 w2c_highlights_f383(w2c_highlights*, u32); +static u32 w2c_highlights_f384(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f385(w2c_highlights*, u32); +static u32 w2c_highlights_f386(w2c_highlights*, u32); +static u32 w2c_highlights_f387(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f388(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f389(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f390(w2c_highlights*, u32, u32); +static void w2c_highlights_f391(w2c_highlights*); +static void w2c_highlights_f392(w2c_highlights*, u32, u32); +static void w2c_highlights_f393(w2c_highlights*, u32, u32); +static void w2c_highlights_f394(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f395(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f396(w2c_highlights*); +static void w2c_highlights_f397(w2c_highlights*, u32); +static void w2c_highlights_f398(w2c_highlights*); +static void w2c_highlights_f399(w2c_highlights*); +static u32 w2c_highlights_f400(w2c_highlights*, u32); +static u32 w2c_highlights_f401(w2c_highlights*, u32); +static u32 w2c_highlights_f402(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f403(w2c_highlights*, u32, u32); +static void w2c_highlights_f404(w2c_highlights*, u32, u32); +static void w2c_highlights_f405(w2c_highlights*); +static void w2c_highlights_f406(w2c_highlights*); +static u32 w2c_highlights_f407(w2c_highlights*, u32, u32); +static u32 w2c_highlights_f408(w2c_highlights*, u32); +static void w2c_highlights_f409(w2c_highlights*, u32); +static u32 w2c_highlights_f410(w2c_highlights*, u32); +static u32 w2c_highlights_f411(w2c_highlights*, u32); +static u32 w2c_highlights_f412(w2c_highlights*, u32); +static void w2c_highlights_f413(w2c_highlights*, u32); +static void w2c_highlights_f414(w2c_highlights*); +static u32 w2c_highlights_f415(w2c_highlights*, u32, u32, u32); +static void w2c_highlights_f416(w2c_highlights*, u32); +static u32 w2c_highlights_f417(w2c_highlights*, u32); +static u32 w2c_highlights_f418(w2c_highlights*, u32); +static u32 w2c_highlights_f419(w2c_highlights*); +static u32 w2c_highlights_f420(w2c_highlights*, u32); +static void w2c_highlights_f421(w2c_highlights*, u32); +static void w2c_highlights_f422(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f423(w2c_highlights*, u32, u32); +static void w2c_highlights_f424(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_liveStage_0(w2c_highlights*, u32); +static void w2c_highlights_liveInitDoc_0(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f427(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_f428(w2c_highlights*, u32); +static void w2c_highlights_f429(w2c_highlights*, u32, u32); +static void w2c_highlights_f430(w2c_highlights*, u32, u32, u32, u32, u32); +static u32 w2c_highlights_f431(w2c_highlights*, u32, u32, u32, u32); +static void w2c_highlights_f432(w2c_highlights*, u32); +static void w2c_highlights_f433(w2c_highlights*); +static u32 w2c_highlights_f434(w2c_highlights*, u32); +static u32 w2c_highlights_f435(w2c_highlights*, u32, u32, u32, u32, u32); +static void w2c_highlights_liveApplyEdits_0(w2c_highlights*, u32, u32); +static u32 w2c_highlights_liveRun_0(w2c_highlights*, u32, u32, u32); +static u32 w2c_highlights_liveLineCount_0(w2c_highlights*); +static u32 w2c_highlights_liveLineLen_0(w2c_highlights*, u32); +static u32 w2c_highlights_liveLineByteLen_0(w2c_highlights*, u32); +static u32 w2c_highlights_liveLineTextPtr_0(w2c_highlights*, u32); +static u32 w2c_highlights_liveLineFlags_0(w2c_highlights*, u32); +static u32 w2c_highlights_liveLineTokPtr_0(w2c_highlights*, u32); +static u32 w2c_highlights_liveLineTokCount_0(w2c_highlights*, u32); +static u32 w2c_highlights_liveChangesPtr_0(w2c_highlights*); +static u32 w2c_highlights_liveStats_0(w2c_highlights*, u32); +static void w2c_highlights_highlight_0(w2c_highlights*); +static void w2c_highlights_f448(w2c_highlights*); +static void w2c_highlights_f449(w2c_highlights*, u32, u32); +static void w2c_highlights_highlightStream_0(w2c_highlights*, u32); + +#ifndef wasm_multi_ii +#define wasm_multi_ii wasm_multi_ii +struct wasm_multi_ii { + u32 i0; + u32 i1; +}; +#endif /* wasm_multi_ii */ + +FUNC_TYPE_T(w2c_highlights_t0) = "\x07\x80\x96\x7a\x42\xf7\x3e\xe6\x70\x5c\x2f\xac\x83\xf5\x67\xd2\xa2\xa0\x69\x41\x5f\xf8\xe7\x96\x7f\x23\xab\x00\x03\x5f\x4a\x3c"; +FUNC_TYPE_T(w2c_highlights_t1) = "\x36\xa9\xe7\xf1\xc9\x5b\x82\xff\xb9\x97\x43\xe0\xc5\xc4\xce\x95\xd8\x3c\x9a\x43\x0a\xac\x59\xf8\x4e\xf3\xcb\xfa\xb6\x14\x50\x68"; +FUNC_TYPE_T(w2c_highlights_t2) = "\x92\xfb\x6a\xdf\x49\x07\x0a\x83\xbe\x08\x02\x68\xcd\xf6\x95\x27\x4a\xc2\xf3\xe5\xe4\x7d\x29\x49\xe8\xed\x42\x92\x6a\x9d\xda\xf0"; +FUNC_TYPE_T(w2c_highlights_t3) = "\x89\x3a\x3d\x2c\x8f\x4d\x7f\x6d\x6c\x9d\x62\x67\x29\xaf\x3d\x44\x39\x8e\xc3\xf3\xe8\x51\xc1\x99\xb9\xdd\x9f\xd5\x3d\x1f\xd3\xe4"; +FUNC_TYPE_T(w2c_highlights_t4) = "\x26\x10\x81\xe2\x21\x43\xd6\x01\x3e\x2d\x2f\x16\x17\x78\x6f\xba\xb3\x2f\x4d\x54\x9b\x8a\xa9\xdd\xbf\x53\x92\x3c\xd3\x71\xc6\xb2"; +FUNC_TYPE_T(w2c_highlights_t5) = "\x72\xab\x00\xdf\x20\x3d\xce\xa1\xf2\x29\xc7\x9d\x13\x40\x7e\x98\xac\x7d\x41\x4a\x53\x2e\x42\x42\x61\x55\x2e\xaa\xeb\xbe\xc6\x35"; +FUNC_TYPE_T(w2c_highlights_t6) = "\x78\xde\x71\xb6\x49\x9a\x33\x9d\xd3\x70\x88\x4c\x50\xd4\xea\xdf\xe1\x2a\x18\x12\xf6\xf3\x64\xf7\xea\x4f\x94\x19\xa7\x20\x28\xe8"; +FUNC_TYPE_T(w2c_highlights_t7) = "\xcd\xad\x8f\x6a\xaf\x3e\xd0\x86\xf0\x9a\xd7\xf0\xc7\x0d\x48\x9f\x27\x59\xf3\x8d\x71\xa1\x81\xa8\xcc\x06\x53\x98\x62\x34\xaa\xf5"; +FUNC_TYPE_T(w2c_highlights_t8) = "\xf6\x98\x1b\xc6\x10\xda\xb7\xb2\x63\x37\xcd\xdc\x72\xca\xe9\x50\x00\x13\xba\x10\x6c\xde\x87\x27\x10\xf8\x86\x2f\xe3\xdb\x94\xe4"; +FUNC_TYPE_T(w2c_highlights_t9) = "\x81\x39\xe9\x80\x36\x86\x39\xf3\xbe\x5e\x29\xbf\x55\x64\xbe\x61\xa7\x82\x5c\x6d\x98\x51\xff\xf0\x20\x11\x16\xc8\x91\x9f\xb9\xb5"; +FUNC_TYPE_T(w2c_highlights_t10) = "\xff\x57\x1f\x83\x74\x67\x5d\x67\x2a\xc8\x0d\x92\x3d\xe8\x47\xa1\x1e\x73\xc7\x03\xa1\xee\x83\x72\x66\xa9\x1c\x9d\xe7\x8c\xdd\xfb"; +FUNC_TYPE_T(w2c_highlights_t11) = "\x10\x14\x42\x90\xbf\xa8\x37\x8c\xdc\x81\x9f\x4c\x63\x4e\x62\xb7\x11\x29\xaa\x09\x68\x89\x5f\x5e\x13\x9c\xcc\xe2\xcb\x51\x7a\x78"; +FUNC_TYPE_T(w2c_highlights_t12) = "\x93\xdb\x38\xf2\x1c\xb7\x06\xd6\x56\xf2\x78\xe9\x62\xcd\xa0\xd0\xca\xf1\xfa\x24\x38\x6c\xc1\x81\x2e\xe3\x0a\xdc\xf2\x6d\xff\xc5"; +FUNC_TYPE_T(w2c_highlights_t13) = "\xd4\x99\x85\x78\x64\x65\x9d\xdd\xc9\x5a\x22\xd7\xc9\x00\x34\xb0\x5b\x0f\xf0\x6e\xc9\x5c\xe5\x31\xe2\x1f\x61\x99\xd3\x8c\x37\x27"; + +static void wrap_w2c_highlights_f91(void *instance) { + return w2c_highlights_f91((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f92(void *instance) { + return w2c_highlights_f92((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f93(void *instance) { + return w2c_highlights_f93((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f94(void *instance) { + return w2c_highlights_f94((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f102(void *instance) { + return w2c_highlights_f102((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f118(void *instance) { + return w2c_highlights_f118((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f128(void *instance) { + return w2c_highlights_f128((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f151(void *instance) { + return w2c_highlights_f151((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f173(void *instance) { + return w2c_highlights_f173((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f180(void *instance) { + return w2c_highlights_f180((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f188(void *instance) { + return w2c_highlights_f188((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f193(void *instance) { + return w2c_highlights_f193((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f202(void *instance) { + return w2c_highlights_f202((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f203(void *instance) { + return w2c_highlights_f203((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f209(void *instance) { + return w2c_highlights_f209((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f229(void *instance) { + return w2c_highlights_f229((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f232(void *instance) { + return w2c_highlights_f232((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f238(void *instance) { + return w2c_highlights_f238((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f239(void *instance) { + return w2c_highlights_f239((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f242(void *instance) { + return w2c_highlights_f242((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f245(void *instance) { + return w2c_highlights_f245((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f249(void *instance) { + return w2c_highlights_f249((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f256(void *instance) { + return w2c_highlights_f256((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f258(void *instance) { + return w2c_highlights_f258((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f260(void *instance) { + return w2c_highlights_f260((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f261(void *instance) { + return w2c_highlights_f261((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f262(void *instance) { + return w2c_highlights_f262((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f265(void *instance) { + return w2c_highlights_f265((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f271(void *instance) { + return w2c_highlights_f271((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f274(void *instance) { + return w2c_highlights_f274((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f275(void *instance) { + return w2c_highlights_f275((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f277(void *instance) { + return w2c_highlights_f277((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f280(void *instance) { + return w2c_highlights_f280((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f281(void *instance) { + return w2c_highlights_f281((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f285(void *instance) { + return w2c_highlights_f285((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f292(void *instance) { + return w2c_highlights_f292((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f295(void *instance) { + return w2c_highlights_f295((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f297(void *instance) { + return w2c_highlights_f297((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f298(void *instance) { + return w2c_highlights_f298((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f299(void *instance) { + return w2c_highlights_f299((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f301(void *instance) { + return w2c_highlights_f301((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f303(void *instance) { + return w2c_highlights_f303((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f305(void *instance) { + return w2c_highlights_f305((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f306(void *instance) { + return w2c_highlights_f306((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f308(void *instance) { + return w2c_highlights_f308((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f310(void *instance) { + return w2c_highlights_f310((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f311(void *instance) { + return w2c_highlights_f311((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f312(void *instance) { + return w2c_highlights_f312((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f313(void *instance) { + return w2c_highlights_f313((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f314(void *instance) { + return w2c_highlights_f314((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f315(void *instance) { + return w2c_highlights_f315((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f322(void *instance) { + return w2c_highlights_f322((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f324(void *instance) { + return w2c_highlights_f324((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f327(void *instance) { + return w2c_highlights_f327((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f330(void *instance) { + return w2c_highlights_f330((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f332(void *instance) { + return w2c_highlights_f332((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f338(void *instance) { + return w2c_highlights_f338((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f341(void *instance) { + return w2c_highlights_f341((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f345(void *instance) { + return w2c_highlights_f345((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f349(void *instance) { + return w2c_highlights_f349((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f352(void *instance) { + return w2c_highlights_f352((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f354(void *instance) { + return w2c_highlights_f354((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f356(void *instance) { + return w2c_highlights_f356((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f359(void *instance) { + return w2c_highlights_f359((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f364(void *instance) { + return w2c_highlights_f364((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f368(void *instance) { + return w2c_highlights_f368((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f369(void *instance) { + return w2c_highlights_f369((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f371(void *instance) { + return w2c_highlights_f371((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f372(void *instance) { + return w2c_highlights_f372((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f373(void *instance) { + return w2c_highlights_f373((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f375(void *instance) { + return w2c_highlights_f375((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f376(void *instance) { + return w2c_highlights_f376((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f377(void *instance) { + return w2c_highlights_f377((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f379(void *instance) { + return w2c_highlights_f379((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f380(void *instance) { + return w2c_highlights_f380((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f391(void *instance) { + return w2c_highlights_f391((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f396(void *instance) { + return w2c_highlights_f396((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f398(void *instance) { + return w2c_highlights_f398((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f399(void *instance) { + return w2c_highlights_f399((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f405(void *instance) { + return w2c_highlights_f405((struct w2c_highlights*) instance); +} +static void wrap_w2c_highlights_f406(void *instance) { + return w2c_highlights_f406((struct w2c_highlights*) instance); +} + +static void init_globals(w2c_highlights* instance) { + instance->w2c_g0 = 65536u; + instance->w2c_g1 = 65536u; + instance->w2c_g2 = 0u; + instance->w2c_g3 = 0u; + instance->w2c_g4 = 0u; + instance->w2c_g5 = 2147483647u; + instance->w2c_g6 = 0u; + instance->w2c_g7 = 0u; + instance->w2c_g8 = 0u; + instance->w2c_g9 = 0u; + instance->w2c_g10 = 4294967295u; + instance->w2c_g11 = 0ull; + instance->w2c_g12 = 0u; + instance->w2c_g13 = 0u; + instance->w2c_g14 = 0u; + instance->w2c_g15 = 0u; + instance->w2c_g16 = 0u; + instance->w2c_g17 = 0u; + instance->w2c_g18 = 4294967295u; + instance->w2c_g19 = 96u; + instance->w2c_g20 = 0u; + instance->w2c_g21 = 4294967295u; + instance->w2c_g22 = 0u; + instance->w2c_g23 = 0u; + instance->w2c_g24 = 0u; + instance->w2c_g25 = 0u; + instance->w2c_g26 = 0u; + instance->w2c_g27 = 0u; + instance->w2c_g28 = 0u; + instance->w2c_g29 = 0u; + instance->w2c_g30 = 0u; + instance->w2c_g31 = 0u; + instance->w2c_g32 = 0u; + instance->w2c_g33 = 0u; + instance->w2c_g34 = 0u; + instance->w2c_g35 = 4294967295u; + instance->w2c_g36 = 0u; + instance->w2c_g37 = 0u; + instance->w2c_g38 = 0u; + instance->w2c_g39 = 0u; + instance->w2c_g40 = 0u; + instance->w2c_g41 = 0u; + instance->w2c_g42 = 0u; + instance->w2c_g43 = 0u; + instance->w2c_g44 = 0u; + instance->w2c_g45 = 0u; + instance->w2c_g46 = 0u; + instance->w2c_g47 = 3u; + instance->w2c_g48 = 65536u; + instance->w2c_g49 = 0u; + instance->w2c_g50 = 0u; + instance->w2c_g51 = 0u; + instance->w2c_g52 = 0u; + instance->w2c_g53 = 0u; + instance->w2c_g54 = 0u; + instance->w2c_g55 = 0u; + instance->w2c_g56 = 0u; + instance->w2c_g57 = 0u; + instance->w2c_g58 = 0u; + instance->w2c_g59 = 0u; + instance->w2c_g60 = 0u; + instance->w2c_g61 = 0u; + instance->w2c_g62 = 0u; + instance->w2c_g63 = 0u; + instance->w2c_g64 = 0u; + instance->w2c_g65 = 0u; + instance->w2c_g66 = 0u; + instance->w2c_g67 = 0u; + instance->w2c_g68 = 0u; + instance->w2c_g69 = 0u; + instance->w2c_g70 = 0u; + instance->w2c_g71 = 0u; + instance->w2c_g72 = 0u; + instance->w2c_g73 = 0u; + instance->w2c_g74 = 0u; + instance->w2c_g75 = 0u; + instance->w2c_g76 = 0u; + instance->w2c_g77 = 0u; + instance->w2c_g78 = 0u; + instance->w2c_g79 = 0u; + instance->w2c_g80 = 0u; + instance->w2c_g81 = 0u; + instance->w2c_g82 = 0u; + instance->w2c_g83 = 0u; + instance->w2c_g84 = 0u; + instance->w2c_g85 = 0u; + instance->w2c_g86 = 0u; + instance->w2c_g87 = 0u; + instance->w2c_g88 = 0u; + instance->w2c_g89 = 0u; + instance->w2c_g90 = 0u; + instance->w2c_g91 = 0u; + instance->w2c_g92 = 0u; + instance->w2c_g93 = 0u; + instance->w2c_g94 = 0u; + instance->w2c_g95 = 0u; + instance->w2c_g96 = 0u; + instance->w2c_g97 = 0u; + instance->w2c_g98 = 4294967295u; + instance->w2c_g99 = 0u; + instance->w2c_g100 = 0u; + instance->w2c_g101 = 0u; + instance->w2c_g102 = 0u; + instance->w2c_g103 = 0u; + instance->w2c_g104 = 0u; + instance->w2c_g105 = 0u; + instance->w2c_g106 = 0u; + instance->w2c_g107 = 0u; + instance->w2c_g108 = 0u; + instance->w2c_g109 = 0u; + instance->w2c_g110 = 0u; + instance->w2c_g111 = 0u; + instance->w2c_g112 = 0u; + instance->w2c_g113 = 0u; + instance->w2c_g114 = 0u; + instance->w2c_g115 = 0u; + instance->w2c_g116 = 0u; + instance->w2c_g117 = 0u; + instance->w2c_g118 = 0u; + instance->w2c_g119 = 0u; + instance->w2c_g120 = 0u; + instance->w2c_g121 = 0u; + instance->w2c_g122 = 0u; + instance->w2c_g123 = 0u; +} + +static const u8 data_segment_data_w2c_highlights_d0[] = { + 0x38, 0x59, 0x18, 0x18, 0x59, +}; + +static const u8 data_segment_data_w2c_highlights_d1[] = { + 0x38, 0x80, 0x18, 0x80, 0x02, 0x00, 0x02, 0x18, 0x00, 0x00, 0xc6, 0x06, + 0x00, 0x86, 0x00, 0x0c, +}; + +static const u8 data_segment_data_w2c_highlights_d2[] = { + 0x5c, 0x0c, 0x1e, 0x80, 0x80, +}; + +static const u8 data_segment_data_w2c_highlights_d3[] = { + 0x40, 0x40, 0x00, 0x06, 0x40, 0x40, +}; + +static const u8 data_segment_data_w2c_highlights_d4[] = { + 0x42, 0x00, 0x06, +}; + +static const u8 data_segment_data_w2c_highlights_d5[] = { + 0x21, 0x00, 0x00, 0x20, +}; + +static const u8 data_segment_data_w2c_highlights_d6[] = { + 0xa4, 0x21, 0x00, 0x01, 0xa0, 0x86, 0x00, 0x4a, 0x4a, 0x80, 0x80, 0x00, + 0x80, 0x00, 0x80, +}; + +static const u8 data_segment_data_w2c_highlights_d7[] = { + 0x06, 0x86, 0x84, 0x86, 0x00, 0x80, +}; + +static const u8 data_segment_data_w2c_highlights_d8[] = { + 0x08, 0x01, 0x08, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, + 0x10, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x08, 0x86, 0x08, 0x04, + +}; + +static const u8 data_segment_data_w2c_highlights_d9[] = { + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, + 0x40, 0x40, +}; + +static const u8 data_segment_data_w2c_highlights_d10[] = { + 0x40, 0x34, 0x40, 0x04, 0x00, 0x14, 0x3e, 0x80, 0x42, 0x42, 0x14, 0x3c, + 0x41, 0x3c, 0x00, 0x14, +}; + +static const u8 data_segment_data_w2c_highlights_d11[] = { + 0x01, 0x41, 0x3c, 0x14, 0x3c, 0x34, 0xc0, +}; + +static const u8 data_segment_data_w2c_highlights_d12[] = { + 0x40, 0x40, 0x40, 0xd4, 0x00, 0xc0, +}; + +static const u8 data_segment_data_w2c_highlights_d13[] = { + 0x40, 0x3e, 0x40, 0xd4, +}; + +static const u8 data_segment_data_w2c_highlights_d14[] = { + 0x40, 0x02, 0x00, 0x00, 0x00, 0x70, 0x02, 0x06, 0x0a, 0x40, 0x51, 0x82, + 0x51, 0x83, 0x41, +}; + +static const u8 data_segment_data_w2c_highlights_d15[] = { + 0x83, 0x22, 0x70, 0x60, 0x70, 0x50, +}; + +static const u8 data_segment_data_w2c_highlights_d16[] = { + 0x06, 0x40, 0x0a, 0x40, +}; + +static const u8 data_segment_data_w2c_highlights_d17[] = { + 0x02, 0x70, 0x02, 0x40, +}; + +static const u8 data_segment_data_w2c_highlights_d18[] = { + 0x08, 0x00, 0x00, 0x08, +}; + +static const u8 data_segment_data_w2c_highlights_d19[] = { + 0x0f, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x80, 0x80, 0x07, 0x43, 0x00, + 0x43, 0x00, 0x03, +}; + +static const u8 data_segment_data_w2c_highlights_d20[] = { + 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x10, 0x04, 0x20, 0x20, +}; + +static const u8 data_segment_data_w2c_highlights_d21[] = { + 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x10, 0x04, 0x20, 0x20, +}; + +static const u8 data_segment_data_w2c_highlights_d22[] = { + 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x03, 0x00, 0x01, +}; + +static const u8 data_segment_data_w2c_highlights_d23[] = { + 0x22, 0x14, 0x00, 0x42, 0x23, 0x63, 0x10, 0x14, 0x08, 0x33, 0x23, 0x80, + 0x33, 0x80, 0x23, +}; + +static const u8 data_segment_data_w2c_highlights_d24[] = { + 0x82, 0x80, 0x23, 0x23, 0x23, 0x06, 0x22, +}; + +static const u8 data_segment_data_w2c_highlights_d25[] = { + 0x14, 0x00, 0x08, 0x62, 0x00, 0x04, +}; + +static const u8 data_segment_data_w2c_highlights_d26[] = { + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x22, 0x08, + 0x26, +}; + +static const u8 data_segment_data_w2c_highlights_d27[] = { + 0xaf, 0x50, 0x20, 0xa0, 0xaf, 0xaf, 0x10, 0x00, 0x00, 0xaf, 0xaf, 0x00, + 0xaf, 0x20, 0xaf, +}; + +static const u8 data_segment_data_w2c_highlights_d28[] = { + 0xa8, 0x00, 0xaf, 0xaf, 0xaf, 0xa9, 0x20, +}; + +static const u8 data_segment_data_w2c_highlights_d29[] = { + 0xe1, 0x00, 0xad, +}; + +static const u8 data_segment_data_w2c_highlights_d30[] = { + 0x10, 0xaf, 0x00, 0xa9, +}; + +static const u8 data_segment_data_w2c_highlights_d31[] = { + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x16, 0x14, + 0x14, 0x16, +}; + +static const u8 data_segment_data_w2c_highlights_d32[] = { + 0x14, 0x21, 0x14, 0x10, 0x12, 0x43, 0x81, 0x14, 0x14, 0x14, 0x41, 0x61, + 0x14, 0x01, 0x00, 0x01, +}; + +static const u8 data_segment_data_w2c_highlights_d33[] = { + 0x10, 0x94, 0xc1, 0x11, 0x81, 0x61, 0x40, 0x00, 0x00, 0x00, 0x08, 0x08, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x12, 0x04, + 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xd1, 0x06, +}; + +static const u8 data_segment_data_w2c_highlights_d34[] = { + 0x40, 0x00, 0x00, 0x40, +}; + +static const u8 data_segment_data_w2c_highlights_d35[] = { + 0x09, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x24, 0x04, 0x28, 0x0b, 0x04, + 0x1a, 0x10, 0x18, +}; + +static const u8 data_segment_data_w2c_highlights_d36[] = { + 0x19, 0x00, 0x08, 0x18, 0x08, 0x01, 0x02, +}; + +static const u8 data_segment_data_w2c_highlights_d37[] = { + 0xa0, 0x08, 0x00, 0x08, 0x00, 0x20, +}; + +static const u8 data_segment_data_w2c_highlights_d38[] = { + 0x80, 0x08, 0x00, 0x08, +}; + +static const u8 data_segment_data_w2c_highlights_d39[] = { + 0x04, 0x04, 0x00, 0x00, 0x04, +}; + +static const u8 data_segment_data_w2c_highlights_d40[] = { + 0x04, 0x52, 0x20, 0x00, 0x02, 0x12, 0x52, 0x10, 0x21, 0x00, 0x52, 0x5a, + 0x94, 0x5a, 0x1a, 0x5a, +}; + +static const u8 data_segment_data_w2c_highlights_d41[] = { + 0x56, 0x00, 0x42, 0x52, 0x42, 0xd2, 0x52, +}; + +static const u8 data_segment_data_w2c_highlights_d42[] = { + 0x25, 0x02, 0x00, 0x02, +}; + +static const u8 data_segment_data_w2c_highlights_d43[] = { + 0x21, 0x42, 0x80, 0x12, +}; + +static const u8 data_segment_data_w2c_highlights_d44[] = { + 0xac, 0x00, 0x80, 0x00, 0x8c, 0xac, 0x00, 0x10, 0x10, 0xae, 0xae, 0x00, + 0xae, 0x04, 0xae, +}; + +static const u8 data_segment_data_w2c_highlights_d45[] = { + 0xa0, 0x00, 0xbe, 0xae, 0xbe, 0xac, 0x82, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, + 0xa6, +}; + +static const u8 data_segment_data_w2c_highlights_d46[] = { + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0xac, 0x10, + 0xa4, +}; + +static const u8 data_segment_data_w2c_highlights_d47[] = { + 0x04, +}; + +static const u8 data_segment_data_w2c_highlights_d48[] = { + 0x04, 0x13, 0x08, 0x04, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x13, 0x12, + 0x04, 0x12, 0x00, 0x13, +}; + +static const u8 data_segment_data_w2c_highlights_d49[] = { + 0x12, 0x12, 0x12, 0x02, +}; + +static const u8 data_segment_data_w2c_highlights_d50[] = { + 0x08, 0x04, 0x11, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x04, 0x13, +}; + +static const u8 data_segment_data_w2c_highlights_d51[] = { + 0x9b, 0x02, 0x00, 0x9b, 0x02, 0x09, 0x9b, 0x02, 0x0d, 0xa8, 0x02, 0x07, + 0x00, 0x03, 0x07, 0x00, 0x03, 0x0b, 0x0a, 0x03, 0x08, 0x0a, 0x03, 0x10, + 0x1f, 0x03, 0x0b, 0xbd, 0x02, 0x0a, 0xdd, 0x02, 0x09, 0xb6, 0x02, 0x08, + 0xf1, 0x02, 0x08, 0xf1, 0x02, 0x0f, 0x2a, 0x03, 0x08, 0x2a, 0x03, 0x13, + 0x3d, 0x03, 0x0f, 0x4c, 0x03, 0x07, 0x4c, 0x03, 0x0f, 0x6b, 0x03, 0x13, + 0x7e, 0x03, 0x0e, 0x9e, 0x03, 0x10, 0x5a, 0x03, 0x05, 0xae, 0x02, 0x09, + 0x19, 0x03, 0x06, 0xa6, 0x03, 0x08, 0xae, 0x03, 0x0a, 0xbb, 0x03, 0x07, + 0xc2, 0x03, 0x07, 0xc9, 0x03, 0x08, 0xc9, 0x03, 0x11, 0xe4, 0x03, 0x0b, + 0xe4, 0x03, 0x13, 0xe4, 0x03, 0x18, 0x03, 0x04, 0x17, 0x1a, 0x04, 0x15, + 0x1a, 0x04, 0x1a, 0x34, 0x04, 0x19, 0x4d, 0x04, 0x17, 0x64, 0x04, 0x12, + 0x75, 0x04, 0x13, 0xc6, 0x02, 0x08, 0xc6, 0x02, 0x0e, 0xd3, 0x02, 0x0b, + 0xe5, 0x02, 0x06, 0xe5, 0x02, 0x0d, 0x88, 0x04, 0x0c, 0x94, 0x04, 0x0e, + 0x94, 0x04, 0x15, 0x8b, 0x03, 0x03, 0x8b, 0x03, 0x0b, 0xa9, 0x04, 0x07, + 0x63, 0x03, 0x08, 0xb0, 0x04, 0x0c, 0xbc, 0x04, 0x05, 0x92, 0x03, 0x04, + 0x92, 0x03, 0x0c, 0xc1, 0x04, 0x0a, 0xd9, 0x04, 0x08, 0xd9, 0x04, 0x12, + 0xeb, 0x04, 0x10, 0xb7, 0x03, 0x04, 0xfb, 0x04, 0x04, 0xd7, 0x03, 0x0d, + 0x5e, 0x03, 0x09, 0xfb, 0x03, 0x08, 0xca, 0x04, 0x0f, 0xfe, 0x04, 0x11, + 0x0f, 0x05, 0x0a, 0x19, 0x05, 0x0e, 0x27, 0x05, 0x07, 0x2e, 0x05, 0x0a, + 0x38, 0x05, 0x0a, +}; + +static const u8 data_segment_data_w2c_highlights_d52[] = { + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x2d, 0x6a, 0x73, + 0x78, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x69, + 0x66, 0x66, 0x2d, 0x6d, 0x69, 0x6e, 0x75, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x2d, 0x69, 0x64, 0x69, 0x66, 0x66, 0x2d, 0x70, + 0x6c, 0x75, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2d, 0x65, 0x73, 0x63, + 0x61, 0x70, 0x65, 0x6d, 0x70, 0x68, 0x61, 0x73, 0x69, 0x73, 0x2d, 0x73, + 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x2d, 0x64, 0x6f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x2d, + 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x64, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2d, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x6b, 0x65, 0x79, + 0x77, 0x6f, 0x72, 0x64, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x69, 0x6e, 0x6b, 0x2d, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x6a, 0x73, 0x78, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x2d, + 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6b, + 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x2d, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x61, 0x67, 0x2d, 0x64, 0x6f, 0x63, 0x74, 0x79, 0x70, 0x65, 0x2d, + 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x6b, 0x65, 0x79, 0x77, 0x6f, + 0x72, 0x64, 0x2d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x70, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6e, 0x75, 0x6d, + 0x70, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2d, 0x6a, + 0x73, 0x6f, 0x6e, 0x2d, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x2d, + 0x6a, 0x73, 0x64, 0x6f, 0x63, 0x70, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x62, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x2d, 0x68, 0x74, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x2d, 0x75, 0x72, 0x69, + 0x70, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, + 0x62, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x2d, 0x6a, 0x73, 0x78, 0x70, + 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x64, + 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x2d, 0x68, 0x74, 0x6d, + 0x6c, 0x70, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2d, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x2d, 0x6a, + 0x73, 0x78, 0x70, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x2d, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x72, 0x70, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2d, 0x6d, 0x61, 0x72, 0x6b, 0x75, 0x70, 0x75, 0x6e, 0x63, 0x74, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, + 0x6c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x65, 0x67, 0x65, + 0x78, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x2d, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x74, 0x61, + 0x67, 0x2d, 0x6a, 0x73, 0x78, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x6c, 0x69, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x74, 0x79, + 0x70, 0x65, 0x2d, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x2d, 0x70, 0x73, 0x65, 0x75, 0x64, 0x6f, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x2d, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x68, 0x69, 0x6e, 0x74, + 0x61, 0x67, 0x2d, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x2d, 0x6a, 0x73, 0x78, 0x74, 0x79, 0x70, 0x65, 0x2d, 0x6a, 0x73, 0x64, + 0x6f, 0x63, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x6a, + 0x73, 0x64, 0x6f, 0x63, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x66, 0x6f, 0x72, + 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, +}; + +static const u8 data_segment_data_w2c_highlights_d53[] = { + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, + 0x63, 0x64, 0x65, 0x66, 0x3c, 0x70, 0x72, 0x65, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, + 0x74, 0x73, 0x22, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, 0x3c, + 0x73, 0x70, 0x61, 0x6e, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x22, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x3b, + 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x69, + 0x74, 0x61, 0x6c, 0x69, 0x63, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x76, 0x61, 0x72, 0x28, 0x22, 0x3e, + 0x3c, 0x63, 0x6f, 0x64, 0x65, 0x3e, 0x3c, 0x2f, 0x63, 0x6f, 0x64, 0x65, + 0x3e, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x6c, 0x69, 0x67, 0x68, 0x74, + 0x2d, 0x64, 0x61, 0x72, 0x6b, 0x28, +}; + +static const u8 data_segment_data_w2c_highlights_d54[] = { + 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x65, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x75, 0x72, 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x6c, 0x79, 0x63, 0x6f, 0x68, 0x65, + 0x72, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x72, 0x62, 0x61, 0x74, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x65, 0x77, 0x61, 0x79, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x45, 0x58, 0x54, 0x45, 0x58, 0x54, 0x55, 0x52, 0x45, 0x5f, + 0x50, 0x49, 0x58, 0x45, 0x4c, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x78, 0x74, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x79, 0x74, 0x65, 0x61, 0x72, 0x72, + 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x45, + 0x58, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x32, 0x44, + 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x4d, 0x61, 0x74, 0x68, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x65, 0x6c, 0x73, 0x65, 0x77, 0x68, + 0x65, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x52, 0x61, 0x79, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x51, 0x55, + 0x41, 0x4c, 0x42, 0x45, 0x44, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x79, + 0x70, 0x65, 0x6f, 0x66, 0x5f, 0x75, 0x6e, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x69, 0x64, 0x65, 0x66, 0x6f, + 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x2d, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x61, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, + 0x73, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x6f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, + 0x74, 0x5f, 0x6d, 0x69, 0x70, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x68, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x45, 0x58, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x46, 0x4f, 0x52, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x4e, + 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x4d, 0x41, 0x54, 0x52, 0x49, 0x58, + 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x68, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x45, 0x58, + 0x54, 0x41, 0x4e, 0x47, 0x45, 0x4e, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, + 0x45, 0x53, 0x54, 0x52, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x74, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x63, 0x68, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x72, 0x79, 0x49, 0x4e, 0x56, 0x5f, 0x50, + 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, + 0x54, 0x52, 0x49, 0x58, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x49, 0x6e, 0x4e, 0x56, + 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x53, 0x53, 0x5f, + 0x45, 0x51, 0x55, 0x41, 0x4c, 0x50, 0x48, 0x41, 0x54, 0x54, 0x45, 0x4e, + 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x5f, + 0x4d, 0x41, 0x50, 0x5f, 0x44, 0x45, 0x50, 0x54, 0x48, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x58, 0x54, 0x52, 0x55, 0x45, 0x4d, 0x49, 0x53, + 0x53, 0x49, 0x4f, 0x4e, 0x6f, 0x74, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x2d, 0x73, 0x79, 0x6e, 0x74, 0x61, + 0x78, 0x2d, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x61, 0x76, 0x65, 0x2d, 0x65, + 0x78, 0x63, 0x75, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x6f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x74, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x5f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x66, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x70, 0x65, 0x72, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x6e, 0x64, 0x73, 0x75, 0x62, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x65, 0x78, 0x74, 0x63, 0x61, 0x73, 0x65, 0x6c, + 0x66, 0x64, 0x65, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x61, + 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x4e, 0x56, + 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, + 0x49, 0x47, 0x48, 0x54, 0x5f, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, 0x45, + 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x50, 0x49, 0x58, 0x45, 0x4c, + 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x6c, 0x6c, 0x69, 0x70, 0x73, 0x69, 0x73, + 0x75, 0x62, 0x70, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4e, + 0x56, 0x49, 0x45, 0x57, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x49, 0x5a, + 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x50, 0x45, 0x43, 0x55, 0x4c, 0x41, + 0x52, 0x5f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, + 0x52, 0x4f, 0x55, 0x47, 0x48, 0x4e, 0x45, 0x53, 0x53, 0x75, 0x62, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, + 0x6c, 0x65, 0x6e, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x69, 0x73, + 0x70, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x78, 0x74, + 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x69, 0x66, 0x79, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x6d, 0x69, 0x70, 0x6d, + 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x6f, 0x74, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x74, 0x79, 0x70, 0x65, 0x63, 0x61, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x6e, + 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x75, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x43, 0x49, 0x54, 0x59, + 0x5f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x66, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x61, 0x73, 0x68, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, 0x73, 0x75, + 0x62, 0x70, 0x61, 0x73, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x64, 0x61, + 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x76, 0x69, + 0x65, 0x77, 0x69, 0x74, 0x68, 0x2d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x2d, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x7a, 0x65, 0x72, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x63, 0x6f, + 0x70, 0x79, 0x5f, 0x5f, 0x75, 0x6e, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x75, + 0x6e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x64, 0x65, 0x66, 0x65, + 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x2d, 0x6d, + 0x61, 0x63, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x6e, 0x64, 0x66, 0x6f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x69, 0x7a, 0x65, + 0x6f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x54, 0x61, 0x72, 0x62, 0x61, 0x6c, + 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x6f, + 0x6e, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x5f, 0x75, 0x69, 0x6e, 0x74, + 0x38, 0x5f, 0x74, 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x78, 0x74, 0x63, 0x69, 0x74, 0x65, 0x70, + 0x73, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x75, 0x62, 0x73, 0x75, 0x62, 0x73, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, + 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x65, 0x2d, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2d, 0x62, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x64, 0x65, 0x66, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x72, 0x64, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x63, 0x61, 0x6c, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x45, 0x58, 0x54, 0x72, + 0x75, 0x65, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x61, + 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x45, 0x58, 0x54, 0x79, + 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x68, 0x72, + 0x65, 0x61, 0x64, 0x49, 0x64, 0x78, 0x6f, 0x72, 0x5f, 0x65, 0x71, 0x6e, + 0x61, 0x72, 0x72, 0x61, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x4e, 0x56, 0x65, 0x72, 0x62, 0x61, 0x74, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x75, 0x62, 0x70, 0x61, 0x72, 0x61, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x74, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x63, 0x61, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x4e, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x6e, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x76, 0x61, 0x72, 0x61, + 0x72, 0x67, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x6f, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x65, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x66, 0x69, 0x6c, 0x65, + 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x78, 0x74, 0x62, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x31, 0x36, 0x5f, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x61, 0x6c, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x63, + 0x61, 0x6c, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x63, 0x6f, 0x70, 0x79, 0x68, + 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x65, 0x63, 0x63, 0x61, 0x6b, 0x32, 0x35, + 0x36, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, + 0x71, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x69, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x72, 0x61, 0x76, 0x65, + 0x72, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x63, 0x72, 0x65, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6e, 0x64, + 0x66, 0x6f, 0x72, 0x61, 0x6c, 0x6c, 0x73, 0x74, 0x6c, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x67, 0x64, 0x5f, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x77, 0x74, 0x79, + 0x70, 0x65, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x61, 0x73, 0x6c, 0x65, 0x66, 0x74, 0x79, 0x70, 0x65, 0x66, 0x72, 0x6f, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x6f, 0x6e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x6c, 0x64, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x61, 0x64, 0x64, 0x5f, 0x73, 0x75, 0x62, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x5f, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x64, 0x65, 0x66, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x6e, 0x64, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x6e, 0x64, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x79, 0x70, 0x65, + 0x6e, 0x61, 0x6d, 0x65, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x6e, 0x64, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x2d, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x74, 0x61, 0x67, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x5f, + 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x61, 0x73, 0x65, 0x74, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x6c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x65, 0x6e, + 0x65, 0x77, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x65, 0x71, + 0x75, 0x61, 0x6c, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x75, 0x6d, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x78, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x76, 0x61, + 0x6c, 0x2d, 0x77, 0x68, 0x65, 0x6e, 0x2d, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x77, 0x6f, 0x72, 0x64, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x69, 0x64, 0x44, 0x69, + 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x78, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x6f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x6f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x2d, 0x66, + 0x72, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x63, 0x65, 0x6e, + 0x64, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x61, 0x72, 0x31, 0x36, 0x5f, 0x74, 0x62, 0x75, 0x66, 0x66, 0x65, + 0x72, 0x61, 0x79, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x58, 0x54, 0x41, + 0x55, 0x6e, 0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x65, 0x69, + 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x6e, 0x64, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x65, 0x64, 0x65, 0x66, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x6f, 0x70, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x41, 0x64, 0x64, + 0x65, 0x66, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x5f, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x41, 0x74, 0x74, 0x72, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, + 0x69, 0x7a, 0x65, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6d, 0x61, + 0x74, 0x68, 0x65, 0x6e, 0x64, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x6c, 0x65, + 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x61, 0x6c, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x65, 0x6e, 0x64, 0x77, 0x68, 0x65, 0x72, 0x65, 0x61, + 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, + 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x73, 0x5f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x6e, 0x64, 0x77, 0x68, 0x69, + 0x6c, 0x65, 0x76, 0x61, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x69, 0x64, 0x65, + 0x66, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x6f, 0x6d, 0x70, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x31, 0x32, 0x38, + 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x4d, 0x41, + 0x54, 0x52, 0x49, 0x58, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x72, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x70, 0x6f, 0x6f, 0x6c, 0x61, 0x73, + 0x74, 0x77, 0x6f, 0x72, 0x64, 0x6c, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x66, 0x70, 0x73, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x78, 0x70, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x61, 0x74, 0x68, 0x65, + 0x72, 0x65, 0x61, 0x64, 0x77, 0x72, 0x69, 0x74, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x65, 0x66, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x74, 0x74, 0x65, 0x72, 0x69, 0x70, 0x65, 0x6d, 0x64, 0x31, 0x36, + 0x30, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, + 0x65, 0x73, 0x73, 0x5f, 0x62, 0x69, 0x62, 0x6c, 0x69, 0x6f, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6f, 0x66, 0x69, 0x6e, 0x64, + 0x5f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x68, 0x69, 0x6e, 0x74, + 0x5f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x67, + 0x69, 0x76, 0x65, 0x6e, 0x64, 0x74, 0x79, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x74, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x6f, 0x74, 0x6f, 0x64, 0x6f, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x79, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x79, 0x6e, 0x74, 0x68, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x73, 0x75, 0x62, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x2d, 0x73, 0x6f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x71, 0x72, 0x65, 0x66, 0x69, 0x6e, 0x64, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x74, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x61, 0x70, 0x74, 0x65, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, + 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x70, 0x61, 0x74, 0x68, 0x69, + 0x73, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x6f, 0x66, 0x69, + 0x6e, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, + 0x73, 0x74, 0x69, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x2d, 0x63, 0x61, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x61, 0x66, + 0x65, 0x63, 0x61, 0x6c, 0x6c, 0x6f, 0x6e, 0x67, 0x62, 0x6f, 0x6f, 0x6c, + 0x6f, 0x6e, 0x67, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x33, 0x32, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, + 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x4d, + 0x41, 0x54, 0x52, 0x49, 0x58, 0x49, 0x4e, 0x56, 0x5f, 0x56, 0x49, 0x45, + 0x57, 0x5f, 0x4d, 0x41, 0x54, 0x52, 0x49, 0x58, 0x5f, 0x5f, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x36, 0x34, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x6e, + 0x69, 0x73, 0x6f, 0x74, 0x72, 0x6f, 0x70, 0x79, 0x68, 0x69, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x45, 0x58, 0x54, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x69, + 0x6e, 0x74, 0x72, 0x69, 0x6e, 0x73, 0x69, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6f, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x77, 0x65, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x65, 0x66, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x75, 0x6c, 0x74, + 0x6c, 0x69, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x71, 0x76, + 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6c, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x72, + 0x61, 0x69, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x61, 0x69, 0x6c, 0x69, 0x6b, 0x65, 0x78, 0x69, 0x73, + 0x74, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x78, 0x70, 0x6f, 0x73, + 0x65, 0x61, 0x6c, 0x65, 0x64, 0x65, 0x66, 0x6d, 0x61, 0x63, 0x72, 0x6f, + 0x70, 0x65, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x72, 0x61, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x69, 0x6e, 0x67, 0x74, 0x72, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x72, 0x75, 0x65, 0x63, 0x68, 0x6f, 0x2e, 0x61, 0x64, 0x64, 0x62, 0x69, + 0x62, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6c, 0x73, 0x69, + 0x66, 0x2d, 0x6e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x68, 0x69, 0x74, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x32, 0x75, 0x6e, 0x77, 0x69, 0x6e, 0x64, 0x2d, + 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x65, 0x66, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x65, 0x66, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x6d, 0x62, 0x65, 0x64, 0x65, 0x66, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x78, 0x77, 0x69, 0x74, 0x68, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x2d, + 0x66, 0x69, 0x6c, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x44, 0x49, 0x46, 0x46, + 0x55, 0x53, 0x45, 0x5f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x49, 0x53, 0x5f, + 0x4e, 0x45, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x41, 0x5f, + 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x5f, 0x54, 0x68, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x72, 0x65, 0x74, 0x68, 0x72, 0x6f, 0x77, 0x73, 0x70, + 0x72, 0x69, 0x6e, 0x74, 0x66, 0x61, 0x6c, 0x6c, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x2d, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x6f, 0x74, + 0x6c, 0x69, 0x6b, 0x65, 0x6e, 0x64, 0x64, 0x6f, 0x77, 0x6e, 0x63, 0x61, + 0x73, 0x74, 0x64, 0x63, 0x61, 0x6c, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, + 0x79, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x6e, 0x64, 0x69, 0x66, + 0x6e, 0x64, 0x65, 0x66, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x64, 0x65, 0x66, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x63, 0x61, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x6e, 0x69, 0x63, + 0x6f, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x53, 0x5f, + 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x5f, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x64, 0x5f, 0x5f, 0x73, 0x68, 0x66, 0x6c, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x32, 0x63, 0x6f, 0x6d, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x69, 0x6e, 0x74, 0x32, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x5f, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x74, 0x63, 0x75, 0x64, 0x61, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x5f, 0x74, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x2d, + 0x63, 0x61, 0x73, 0x65, 0x74, 0x21, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x5f, 0x6f, 0x6e, 0x63, 0x65, 0x6c, 0x69, 0x66, 0x64, 0x65, 0x66, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x6d, 0x69, 0x74, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, + 0x5f, 0x49, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, + 0x49, 0x53, 0x5f, 0x41, 0x42, 0x53, 0x4f, 0x4c, 0x55, 0x54, 0x45, 0x59, + 0x45, 0x44, 0x49, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x4e, 0x41, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x49, 0x6d, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, + 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x45, + 0x4e, 0x53, 0x49, 0x54, 0x59, 0x63, 0x5f, 0x75, 0x6c, 0x6f, 0x6e, 0x67, + 0x6c, 0x6f, 0x6e, 0x67, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x6f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x6d, 0x70, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x63, + 0x61, 0x6c, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x74, 0x6d, 0x75, 0x6c, 0x6d, 0x6f, 0x64, 0x65, + 0x63, 0x6c, 0x74, 0x79, 0x70, 0x65, 0x78, 0x65, 0x63, 0x75, 0x64, 0x61, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x62, 0x61, 0x72, 0x65, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x78, 0x69, 0x74, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x6f, 0x6e, 0x6c, 0x79, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x72, 0x65, 0x69, 0x66, 0x69, 0x65, 0x64, 0x65, 0x66, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x78, 0x6e, 0x6f, 0x74, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, + 0x79, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x75, 0x73, 0x65, 0x2d, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x49, + 0x53, 0x5f, 0x53, 0x59, 0x4d, 0x4c, 0x49, 0x4e, 0x4b, 0x50, 0x41, 0x54, + 0x48, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x72, 0x65, 0x73, 0x68, + 0x61, 0x70, 0x65, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x53, 0x49, 0x5a, + 0x45, 0x4e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x75, 0x6c, 0x6c, 0x70, 0x74, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x51, + 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, 0x6f, 0x6e, 0x6f, 0x63, 0x69, + 0x74, 0x65, 0x53, 0x4b, 0x59, 0x5f, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x53, + 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x55, 0x56, 0x32, 0x5f, 0x5f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x77, 0x61, 0x72, + 0x70, 0x53, 0x69, 0x7a, 0x65, 0x62, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x4f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2d, 0x6f, 0x75, 0x74, + 0x72, 0x65, 0x66, 0x69, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x62, 0x72, 0x65, 0x61, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x34, 0x63, + 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x6c, 0x6f, 0x6e, 0x67, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x78, 0x31, 0x32, 0x38, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x6f, 0x6e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x65, 0x66, 0x73, + 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x70, 0x61, 0x63, 0x6b, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x66, 0x69, 0x6e, 0x64, 0x5f, 0x66, 0x69, 0x6c, + 0x65, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x77, 0x69, 0x73, 0x65, 0x74, 0x71, 0x6e, + 0x61, 0x6d, 0x65, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x63, 0x6f, + 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x65, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x69, + 0x6e, 0x67, 0x75, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x69, 0x6e, 0x74, + 0x77, 0x69, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x77, 0x69, + 0x74, 0x68, 0x2d, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x24, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x46, 0x52, + 0x41, 0x47, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x45, 0x4c, 0x54, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x52, 0x54, 0x45, 0x58, 0x5f, 0x4e, 0x6f, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x71, 0x5f, 0x4e, + 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x5f, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x5f, 0x5f, 0x6e, 0x6f, 0x6e, 0x6e, 0x75, 0x6c, 0x6c, 0x61, + 0x79, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x65, 0x73, 0x63, 0x75, 0x65, 0x61, 0x64, 0x64, 0x72, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x61, 0x64, 0x64, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x78, 0x61, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x69, + 0x6e, 0x67, 0x61, 0x6e, 0x79, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x61, + 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x43, 0x41, 0x53, 0x54, 0x52, 0x45, 0x51, + 0x55, 0x41, 0x4c, 0x49, 0x46, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x54, 0x41, + 0x4c, 0x4c, 0x49, 0x43, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x62, 0x69, 0x74, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x63, 0x6f, 0x5f, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x6f, 0x74, 0x64, 0x69, 0x72, 0x4f, 0x66, 0x72, 0x6f, 0x7a, + 0x65, 0x6e, 0x73, 0x65, 0x74, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x69, + 0x6f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x36, 0x34, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x65, 0x76, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x63, 0x74, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x78, 0x70, + 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x6f, 0x74, 0x69, 0x6e, + 0x68, 0x65, 0x72, 0x69, 0x74, 0x65, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, + 0x6c, 0x61, 0x7a, 0x79, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x69, 0x6e, 0x69, + 0x74, 0x63, 0x6f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x68, 0x69, + 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x75, 0x69, 0x6e, 0x74, 0x70, 0x74, 0x72, 0x65, 0x73, 0x75, + 0x6d, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x6f, 0x66, 0x61, + 0x69, 0x6c, 0x77, 0x69, 0x74, 0x68, 0x65, 0x6c, 0x70, 0x65, 0x72, 0x65, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x6e, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, + 0x74, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x63, 0x68, 0x61, 0x72, 0x38, 0x5f, + 0x74, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x63, 0x69, 0x74, 0x65, 0x70, 0x72, + 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x64, 0x75, 0x72, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x65, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x70, 0x75, 0x72, 0x65, 0x74, 0x72, 0x79, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, + 0x70, 0x77, 0x69, 0x64, 0x65, 0x63, 0x68, 0x61, 0x72, 0x61, 0x69, 0x73, + 0x65, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x64, 0x69, + 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x77, 0x61, 0x6e, 0x74, 0x61, + 0x72, 0x72, 0x61, 0x79, 0x77, 0x68, 0x65, 0x6e, 0x2d, 0x73, 0x6f, 0x6d, + 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x74, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x2d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x66, 0x74, 0x79, 0x70, 0x65, 0x42, 0x49, 0x4e, 0x4f, 0x52, 0x4d, 0x41, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x69, 0x6e, 0x74, 0x49, 0x42, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x6f, + 0x6e, 0x65, 0x49, 0x42, 0x4f, 0x75, 0x74, 0x6c, 0x65, 0x74, 0x49, 0x74, + 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x41, 0x5f, 0x72, 0x65, 0x61, + 0x6c, 0x5f, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x61, 0x73, 0x73, 0x65, 0x6d, + 0x62, 0x6c, 0x79, 0x4e, 0x4f, 0x54, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x4e, + 0x6f, 0x64, 0x65, 0x50, 0x61, 0x74, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, + 0x61, 0x6e, 0x79, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x75, 0x6e, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, + 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x41, 0x6c, 0x69, 0x67, 0x6e, + 0x6f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x5f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x5f, 0x75, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x4e, 0x6f, 0x6e, + 0x6e, 0x75, 0x6c, 0x6c, 0x6f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x70, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x5f, 0x68, 0x6f, 0x73, 0x74, + 0x5f, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x6f, 0x66, 0x65, 0x74, 0x63, 0x68, + 0x47, 0x69, 0x74, 0x5f, 0x5f, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x67, 0x61, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x61, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x61, 0x6e, 0x79, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x61, + 0x6e, 0x79, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x62, 0x61, 0x73, 0x65, 0x6e, + 0x61, 0x6d, 0x65, 0x62, 0x6c, 0x6f, 0x62, 0x68, 0x61, 0x73, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x77, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, + 0x78, 0x6f, 0x72, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x78, 0x62, + 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x62, 0x79, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6c, 0x73, 0x73, 0x6d, 0x6f, + 0x6f, 0x74, 0x68, 0x69, 0x64, 0x69, 0x6e, 0x67, 0x63, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x61, 0x6c, 0x63, 0x6f, 0x5f, 0x61, 0x77, 0x61, 0x69, 0x74, + 0x63, 0x6f, 0x5f, 0x79, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x65, 0x73, 0x62, 0x79, 0x74, 0x65, 0x73, 0x6c, 0x6f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x6e, 0x6f, 0x72, 0x6d, 0x69, 0x6e, 0x75, 0x74, + 0x65, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, + 0x75, 0x65, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x63, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x79, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x79, 0x74, 0x79, 0x70, 0x65, + 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x5f, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x66, 0x76, 0x61, 0x72, + 0x79, 0x69, 0x6e, 0x67, 0x70, 0x61, 0x74, 0x73, 0x75, 0x62, 0x73, 0x74, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x74, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x70, 0x73, 0x63, 0x6d, + 0x64, 0x6c, 0x65, 0x74, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x6f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x75, 0x70, 0x65, 0x72, 0x77, 0x68, 0x65, 0x6e, 0x2d, 0x6e, 0x6f, 0x74, + 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x65, 0x69, 0x6e, 0x69, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x69, 0x6c, + 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x36, 0x34, 0x49, 0x4e, 0x5f, + 0x4c, 0x49, 0x53, 0x54, 0x52, 0x4c, 0x45, 0x53, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x45, 0x53, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x33, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x34, 0x5f, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x5f, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x61, 0x62, 0x73, 0x70, 0x61, 0x74, 0x68, 0x69, 0x67, 0x68, 0x70, 0x61, + 0x67, 0x65, 0x72, 0x65, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x61, + 0x74, 0x74, 0x72, 0x64, 0x65, 0x66, 0x6e, 0x2d, 0x61, 0x75, 0x74, 0x6f, + 0x72, 0x65, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x63, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x63, + 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x6c, + 0x79, 0x66, 0x6c, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x33, 0x32, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x36, 0x34, 0x66, 0x6f, + 0x72, 0x53, 0x6f, 0x6d, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x69, 0x67, 0x6e, + 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x6f, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x70, 0x61, 0x79, 0x61, 0x62, 0x6c, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x69, 0x73, 0x65, 0x70, 0x72, 0x65, 0x6c, 0x6f, 0x61, + 0x64, 0x64, 0x6d, 0x6f, 0x64, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x70, 0x72, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x73, 0x70, 0x69, 0x64, 0x6f, 0x6c, + 0x69, 0x73, 0x74, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x68, 0x6f, 0x77, 0x63, 0x68, 0x61, 0x72, + 0x5f, 0x74, 0x75, 0x6e, 0x6f, 0x77, 0x6e, 0x65, 0x64, 0x6f, 0x77, 0x6e, + 0x74, 0x6f, 0x75, 0x6e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x75, 0x6e, 0x73, + 0x68, 0x69, 0x66, 0x74, 0x75, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, + 0x66, 0x75, 0x6e, 0x6c, 0x65, 0x73, 0x73, 0x70, 0x6d, 0x64, 0x6f, 0x73, + 0x65, 0x71, 0x76, 0x61, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x76, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, + 0x72, 0x24, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x24, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x24, 0x66, 0x69, 0x72, 0x73, 0x74, 0x24, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x49, 0x47, 0x4e, 0x4f, 0x52, + 0x45, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x65, 0x63, 0x74, 0x32, 0x69, + 0x6e, 0x66, 0x69, 0x78, 0x6c, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x5f, 0x77, 0x65, 0x61, 0x6b, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x62, + 0x69, 0x67, 0x69, 0x6e, 0x74, 0x62, 0x69, 0x74, 0x61, 0x6e, 0x64, 0x77, + 0x6f, 0x72, 0x64, 0x69, 0x63, 0x74, 0x62, 0x79, 0x63, 0x6f, 0x70, 0x79, + 0x63, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x63, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x64, 0x69, 0x72, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x63, 0x6f, 0x6e, + 0x63, 0x61, 0x74, 0x63, 0x68, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x64, 0x69, 0x6d, 0x33, 0x63, 0x6f, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x69, + 0x6e, 0x74, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x66, 0x6c, 0x61, 0x76, + 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x34, 0x66, 0x72, 0x65, 0x65, 0x7a, 0x65, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x69, 0x6e, 0x66, 0x69, 0x78, 0x72, 0x69, + 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x6d, + 0x69, 0x6e, 0x74, 0x65, 0x64, 0x6f, 0x74, 0x6f, 0x6d, 0x6b, 0x6c, 0x69, + 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x66, 0x6f, 0x72, 0x70, 0x61, 0x73, 0x63, + 0x61, 0x6c, 0x70, 0x72, 0x61, 0x67, 0x6d, 0x61, 0x79, 0x62, 0x65, 0x67, + 0x69, 0x6e, 0x2d, 0x6e, 0x73, 0x71, 0x72, 0x74, 0x70, 0x72, 0x6f, 0x6d, + 0x70, 0x74, 0x70, 0x73, 0x69, 0x74, 0x65, 0x6d, 0x69, 0x78, 0x65, 0x64, + 0x69, 0x65, 0x71, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x64, 0x65, 0x63, + 0x6c, 0x69, 0x6b, 0x65, 0x75, 0x66, 0x69, 0x78, 0x65, 0x64, 0x69, 0x76, + 0x61, 0x65, 0x78, 0x70, 0x72, 0x6f, 0x67, 0x31, 0x75, 0x69, 0x6e, 0x74, + 0x31, 0x36, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x76, 0x61, 0x74, 0x79, 0x70, 0x65, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x24, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x45, 0x47, 0x49, 0x4e, + 0x44, 0x45, 0x58, 0x42, 0x61, 0x73, 0x69, 0x73, 0x69, 0x7a, 0x65, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x4c, 0x6f, 0x6e, + 0x67, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x4d, 0x61, 0x79, 0x62, 0x65, 0x4e, 0x65, 0x76, + 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x42, 0x6f, 0x6f, 0x6c, + 0x61, 0x62, 0x6f, 0x72, 0x74, 0x61, 0x66, 0x74, 0x65, 0x72, 0x62, 0x69, + 0x74, 0x6f, 0x72, 0x62, 0x79, 0x72, 0x65, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x72, 0x61, 0x74, 0x65, 0x66, + 0x6c, 0x75, 0x73, 0x68, 0x6c, 0x66, 0x6f, 0x6c, 0x64, 0x6c, 0x66, 0x6f, + 0x6c, 0x64, 0x72, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x61, 0x79, 0x69, 0x66, + 0x6e, 0x65, 0x71, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x69, 0x6e, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x72, 0x65, 0x66, 0x31, + 0x32, 0x38, 0x69, 0x73, 0x6e, 0x6f, 0x74, 0x69, 0x73, 0x73, 0x65, 0x74, + 0x6d, 0x69, 0x78, 0x69, 0x6e, 0x66, 0x6f, 0x6d, 0x6b, 0x64, 0x69, 0x72, + 0x6d, 0x6c, 0x6f, 0x61, 0x64, 0x70, 0x61, 0x74, 0x63, 0x68, 0x61, 0x6e, + 0x70, 0x61, 0x75, 0x73, 0x65, 0x72, 0x70, 0x72, 0x6f, 0x67, 0x32, 0x70, + 0x72, 0x6f, 0x67, 0x6e, 0x70, 0x75, 0x73, 0x68, 0x64, 0x75, 0x6e, 0x69, + 0x6f, 0x6e, 0x75, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x78, 0x75, 0x6e, 0x73, + 0x65, 0x74, 0x75, 0x73, 0x69, 0x7a, 0x65, 0x76, 0x61, 0x61, 0x72, 0x67, + 0x76, 0x61, 0x72, 0x65, 0x66, 0x6c, 0x61, 0x74, 0x76, 0x70, 0x61, 0x74, + 0x68, 0x61, 0x6c, 0x66, 0x6c, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6b, 0x73, + 0x68, 0x72, 0x65, 0x66, 0x6c, 0x69, 0x70, 0x6f, 0x70, 0x64, 0x24, 0x6f, + 0x64, 0x64, 0x41, 0x41, 0x42, 0x42, 0x4f, 0x4f, 0x4c, 0x42, 0x79, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x72, 0x43, 0x72, 0x65, 0x66, 0x6d, 0x61, 0x70, + 0x6f, 0x77, 0x4e, 0x55, 0x4c, 0x4c, 0x4e, 0x6f, 0x6e, 0x65, 0x53, 0x65, + 0x6c, 0x66, 0x31, 0x36, 0x56, 0x6f, 0x69, 0x64, 0x5f, 0x63, 0x6d, 0x64, + 0x62, 0x61, 0x6e, 0x64, 0x62, 0x6e, 0x6f, 0x74, 0x62, 0x78, 0x6f, 0x72, + 0x63, 0x68, 0x6f, 0x70, 0x77, 0x64, 0x63, 0x72, 0x65, 0x66, 0x33, 0x32, + 0x68, 0x65, 0x61, 0x64, 0x68, 0x69, 0x64, 0x65, 0x68, 0x6f, 0x6d, 0x65, + 0x69, 0x66, 0x65, 0x71, 0x69, 0x6f, 0x74, 0x61, 0x62, 0x69, 0x31, 0x36, + 0x6a, 0x6f, 0x69, 0x6e, 0x75, 0x6e, 0x69, 0x74, 0x75, 0x73, 0x65, 0x73, + 0x76, 0x31, 0x32, 0x38, 0x76, 0x6f, 0x69, 0x64, 0x41, 0x6e, 0x79, 0x49, + 0x4d, 0x50, 0x49, 0x4e, 0x46, 0x49, 0x6e, 0x66, 0x36, 0x34, 0x4d, 0x61, + 0x70, 0x4e, 0x41, 0x4e, 0x61, 0x4e, 0x61, 0x54, 0x4e, 0x69, 0x6c, 0x4f, + 0x46, 0x46, 0x52, 0x49, 0x44, 0x53, 0x65, 0x74, 0x61, 0x73, 0x6d, 0x79, + 0x61, 0x73, 0x72, 0x62, 0x73, 0x6c, 0x62, 0x73, 0x72, 0x63, 0x6c, 0x73, + 0x63, 0x6d, 0x70, 0x63, 0x6e, 0x65, 0x63, 0x6f, 0x73, 0x66, 0x38, 0x30, + 0x69, 0x33, 0x32, 0x69, 0x36, 0x34, 0x69, 0x73, 0x7a, 0x69, 0x70, 0x75, + 0x31, 0x36, 0x75, 0x33, 0x32, 0x75, 0x36, 0x34, 0x75, 0x72, 0x6c, 0x75, + 0x73, 0x7a, 0x41, 0x4f, 0x69, 0x38, 0x75, 0x38, +}; + +static const u8 data_segment_data_w2c_highlights_d55[] = { + 0x02, 0x0b, 0x05, 0x0a, 0x01, 0x06, 0x05, 0x0e, 0x0c, 0x0f, 0x0d, 0x00, + 0x00, 0x3d, 0x00, 0x00, 0x51, 0xc3, 0x20, 0x88, 0x41, 0x18, 0x4b, 0x29, + 0x30, 0x10, 0xc6, 0x48, 0xbb, 0xf8, 0x30, 0xea, 0x20, 0x18, 0xb2, 0x25, + 0x28, 0xea, 0x6b, 0x38, 0x45, 0x22, 0x38, 0x06, 0x6e, 0x28, 0xc1, 0xf8, + 0x30, 0xbb, 0xf8, 0x28, 0xc9, 0xec, 0x20, 0xfd, 0xf2, 0x48, 0x22, 0xfb, + 0x20, 0x81, 0x28, 0x38, 0x3f, 0x6c, 0x28, 0x46, 0x60, 0x10, 0xd1, 0x26, + 0x28, 0x1b, 0x2f, 0x28, 0xeb, 0x23, 0x20, 0x46, 0x61, 0x10, 0xab, 0xae, + 0x20, 0x4f, 0x21, 0x10, 0xcd, 0x8c, 0x50, 0x94, 0x2e, 0x58, 0xb5, 0xf8, + 0x30, 0x94, 0x9b, 0x20, 0xe0, 0x76, 0x40, 0x28, 0x60, 0x10, 0xb6, 0x69, + 0x20, 0x5f, 0xba, 0x28, 0x42, 0x81, 0x30, 0x02, 0x21, 0x20, 0xc7, 0xf8, + 0x30, 0x06, 0xfa, 0x28, 0x01, 0x80, 0x10, 0x00, 0x00, 0x12, 0x00, 0x13, + 0x00, 0x11, 0x00, 0x15, 0x00, 0x03, 0x00, 0x07, 0x00, 0x3c, +}; + +static const u8 data_segment_data_w2c_highlights_d56[] = { + 0x02, +}; + +static const u8 data_segment_data_w2c_highlights_d57[] = { + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x08, 0x41, 0x61, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x10, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x02, 0x82, 0x00, 0x00, 0x00, 0x01, 0x02, 0x84, 0x20, 0x84, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x80, 0x41, 0x00, 0x01, 0x82, 0x00, 0x00, + 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x02, 0x00, + 0x41, 0x41, 0x41, 0x41, 0x61, 0x01, 0x61, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x41, 0x51, 0x51, 0x41, 0x41, +}; + +static const u8 data_segment_data_w2c_highlights_d58[] = { + 0x01, 0x05, 0x00, 0x2d, 0x0a, 0x2a, 0x00, 0x12, 0x30, 0x00, 0x09, 0x07, + 0x18, 0x27, 0x0c, 0xc6, 0x06, 0x8e, 0x06, 0x97, 0x0c, 0x6a, 0x13, 0xca, + 0x08, 0x12, 0x0a, 0x24, 0x0b, 0x74, 0x09, 0x38, 0x0c, 0x35, 0x07, 0x30, + 0x09, 0xfb, 0x0e, 0x07, 0x08, 0xda, 0x14, 0x83, 0x14, 0x27, 0x10, 0xbf, + 0x0c, 0x0d, 0x0d, 0x76, 0x04, 0x57, 0x05, 0x6d, 0x10, 0x9e, 0x0a, 0x00, + 0x00, 0x60, 0x13, 0xe5, 0x12, 0x51, 0x0b, 0x39, 0x05, 0x40, 0x11, 0x00, + 0x00, 0x0c, 0x0a, 0x03, 0x13, 0xd5, 0x08, 0x69, 0x06, 0x79, 0x0c, 0x82, + 0x11, 0xef, 0x06, 0x61, 0x0e, 0x1e, 0x10, 0x2a, 0x0b, 0x53, 0x0e, 0x1b, + 0x0b, 0xb0, 0x0a, 0x5a, 0x0b, 0x92, 0x08, 0x79, 0x11, 0x18, 0x0a, 0x42, + 0x08, 0xab, 0x08, 0xa4, 0x0c, 0x49, 0x0f, 0x21, 0x05, 0xbb, 0x06, 0x01, + 0x0a, 0x14, 0x0d, 0x80, 0x04, 0x3f, 0x04, 0x30, 0x0e, 0xcf, 0x0a, 0xf3, + 0x0e, 0x4c, 0x0c, 0x47, 0x08, 0xb6, 0x08, 0x3c, 0x07, 0x5b, 0x0a, 0x49, + 0x62, 0x72, 0x65, 0x61, 0x6b, 0x4a, 0x63, 0x61, 0x73, 0x65, 0x4b, 0x63, + 0x61, 0x74, 0x63, 0x68, 0x4c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x4e, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x65, 0x4f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x67, 0x65, 0x72, 0x50, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x51, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x64, 0x6f, 0x53, 0x65, 0x6c, 0x73, 0x65, 0x54, 0x65, 0x6e, + 0x75, 0x6d, 0x55, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x73, 0x57, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x58, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x59, 0x66, 0x6f, 0x72, 0x5a, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5b, 0x69, 0x66, 0x5c, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5d, 0x69, 0x6e, 0x5e, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65, 0x77, + 0x60, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x62, 0x73, 0x75, 0x70, 0x65, 0x72, 0x63, 0x73, 0x77, 0x69, 0x74, 0x63, + 0x68, 0x64, 0x74, 0x68, 0x69, 0x73, 0x65, 0x74, 0x68, 0x72, 0x6f, 0x77, + 0x66, 0x74, 0x72, 0x75, 0x65, 0x67, 0x74, 0x72, 0x79, 0x68, 0x74, 0x79, + 0x70, 0x65, 0x6f, 0x66, 0x69, 0x76, 0x61, 0x72, 0x6a, 0x76, 0x6f, 0x69, + 0x64, 0x6b, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x6c, 0x77, 0x69, 0x74, 0x68, + 0x6d, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x6e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x6f, 0x6c, 0x65, + 0x74, 0x70, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x71, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x72, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x73, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x74, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x75, 0x79, 0x69, 0x65, 0x6c, 0x64, 0x76, + 0x61, 0x73, 0x77, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x78, 0x61, 0x77, 0x61, + 0x69, 0x74, 0x79, 0x66, 0x72, 0x6f, 0x6d, 0x7a, 0x67, 0x65, 0x74, 0x7b, + 0x6f, 0x66, 0x7c, 0x73, 0x65, 0x74, 0x7d, 0x61, 0x62, 0x73, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x7e, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x65, 0x7f, + 0x69, 0x6e, 0x66, 0x65, 0x72, 0x80, 0x69, 0x73, 0x81, 0x6b, 0x65, 0x79, + 0x6f, 0x66, 0x82, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x85, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x86, 0x74, + 0x79, 0x70, 0x65, 0x84, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, + 0x83, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, +}; + +static const u8 data_segment_data_w2c_highlights_d59[] = { + 0xfd, 0xfd, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x01, 0xfd, + 0x19, 0x19, 0x19, 0xfe, 0x23, 0xfd, 0xfd, 0x23, 0x19, 0x19, 0x19, 0x19, + 0xfd, 0x1d, 0xff, 0x20, 0x20, 0x19, 0x19, 0x19, 0x19, 0x20, 0x19, 0x19, + 0x19, 0xfd, 0x19, 0x19, 0x23, 0xfe, 0x18, 0x19, 0x19, 0x19, 0x19, 0x19, + 0x19, 0x19, 0x20, 0x20, 0x19, 0x19, 0x19, 0x19, 0x20, 0x19, 0x2e, 0x23, + 0x19, 0x19, 0x19, 0xfd, 0x19, 0x19, 0x19, 0x19, 0x19, 0x18, 0x19, 0x19, + 0x19, 0x12, 0x12, 0x12, 0x13, 0x13, 0x12, 0x11, 0x12, 0x11, 0x12, 0x12, + 0x13, 0x14, 0x11, 0x03, 0x12, 0x12, 0x13, 0x12, 0x14, 0x11, 0x11, 0x11, + 0x07, 0x12, 0x3c, 0x12, 0x3c, 0x12, 0x03, 0x12, 0x11, 0x13, 0x11, 0x12, + 0x11, 0x11, 0x13, 0x13, 0x11, 0x11, 0x11, 0x11, 0x11, 0x12, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, +}; + +static const u8 data_segment_data_w2c_highlights_d60[] = { + 0xb0, 0xb5, 0x17, 0x00, 0x02, 0x01, 0x00, 0x74, 0x0f, 0xa5, 0x30, 0xb0, + 0x2a, 0x20, 0x24, 0x52, 0x28, 0x60, 0x21, 0x10, 0x02, 0x21, 0x20, 0xb1, + 0xf4, 0x38, 0x5e, 0xe2, 0x28, 0xf2, 0x04, 0x41, 0xeb, 0xc3, 0x20, 0xa2, + 0x38, 0x28, 0xc8, 0xea, 0x38, 0x01, 0x80, 0x10, 0xac, 0xec, 0x40, 0x50, + 0x41, 0x10, 0x96, 0x25, 0x21, 0x4f, 0x21, 0x10, 0x49, 0x30, 0x20, 0x75, + 0x59, 0x20, 0x86, 0x56, 0x40, 0x48, 0x39, 0x31, 0x90, 0x61, 0x20, 0xd0, + 0x45, 0x30, 0x4f, 0xec, 0x30, 0x19, 0x2b, 0x28, 0xea, 0xa0, 0x18, +}; + +static const u8 data_segment_data_w2c_highlights_d61[] = { + 0x06, 0x0d, 0x7f, 0x05, 0x03, 0x09, 0x25, 0x24, 0x11, 0x00, 0x48, 0x05, + 0x30, 0xb9, 0x0d, 0x2c, 0xd0, 0x99, 0x10, 0xcd, 0x80, 0x10, 0xf0, 0x41, + 0x18, 0x60, 0x22, 0x20, 0xc7, 0x8c, 0x20, 0xe0, 0x9a, 0x28, 0xcc, 0x8b, + 0x10, 0xb8, 0x99, 0x30, 0x7c, 0x69, 0x40, 0xad, 0x89, 0x28, 0x83, 0x98, + 0x28, 0xc9, 0x80, 0x28, 0x42, 0x81, 0x20, 0x60, 0x21, 0x10, 0x56, 0x48, + 0x18, 0xd0, 0x9a, 0x28, 0x12, 0x26, 0x38, 0xf9, 0x24, 0x18, 0xd8, 0x86, + 0x18, 0x01, 0x20, 0x10, 0x2f, 0x2c, 0x20, 0xa4, 0x83, 0x30, 0x3f, 0x56, + 0x18, 0x02, 0x21, 0x20, 0x79, 0x89, 0x28, 0xe6, 0x96, 0x30, 0x92, 0xaa, + 0x18, 0xc3, 0x61, 0x18, 0x2a, 0x99, 0x28, 0xd4, 0x88, 0x28, 0x56, 0x8a, + 0x28, 0x49, 0x93, 0x30, 0x7d, 0x80, 0x18, 0x0d, 0x82, 0x18, 0xea, 0x20, + 0x18, 0x4f, 0x21, 0x10, 0xb2, 0x25, 0x50, 0xc9, 0x9b, 0x18, 0xd8, 0x94, + 0x28, 0x1b, 0x8e, 0x18, 0x1e, 0x9b, 0x20, 0x94, 0x99, 0x30, 0xae, 0x8e, + 0x20, 0xda, 0x85, 0x20, 0xbf, 0x9a, 0x28, 0x1e, 0x31, 0x20, 0xa3, 0x4e, + 0x18, 0x8d, 0x92, 0x28, 0x60, 0x2e, 0x28, 0xae, 0x8e, 0x28, 0x18, 0x4e, + 0x18, 0x94, 0x8a, 0x20, 0x4b, 0x6a, 0x40, 0x7a, 0x4c, 0x18, 0x6c, 0x80, + 0x18, 0x00, 0x00, 0x12, 0x00, 0x15, 0x00, 0x13, 0x00, 0x0e, 0x00, 0x04, + +}; + +static const u8 data_segment_data_w2c_highlights_d62[] = { + 0x79, 0x43, 0x13, 0xfa, 0x30, 0x01, 0x36, 0x05, 0x04, 0x0f, 0x2f, 0x00, + 0x84, 0x0e, 0x06, 0x00, 0xd0, 0x25, 0x30, 0x38, 0x86, 0x30, 0x80, 0x97, + 0x38, 0x1f, 0x6a, 0x20, 0x02, 0x21, 0x20, 0x18, 0x6d, 0x20, 0xfc, 0x93, + 0x48, 0x60, 0x21, 0x10, 0x4e, 0x60, 0x30, 0x5f, 0xba, 0x28, 0x84, 0x8e, + 0x70, 0xe8, 0x4c, 0x40, 0x45, 0x22, 0x38, 0x42, 0x81, 0x68, 0x25, 0x6c, + 0x28, 0xea, 0x20, 0x18, 0x26, 0x65, 0x20, 0x99, 0x75, 0x40, 0xeb, 0x23, + 0x20, 0x47, 0x7a, 0x28, 0x5c, 0x89, 0x28, 0x51, 0x8a, 0x38, 0xe5, 0x7a, + 0x28, 0x55, 0x49, 0x38, 0x2f, 0x2c, 0x20, 0x08, 0x4b, 0x20, 0x45, 0x4f, + 0x68, 0xc4, 0x69, 0x20, 0x4b, 0x29, 0x30, 0xfe, 0x76, 0x30, 0x42, 0x81, + 0x30, 0x1b, 0x8e, 0x40, 0xab, 0xae, 0x20, 0x4f, 0x21, 0x10, 0x29, 0x80, + 0x68, 0xa1, 0x95, 0x40, 0x24, 0x32, 0x28, 0x94, 0x70, 0x50, 0x49, 0x95, + 0x40, 0x57, 0x42, 0x60, 0x60, 0x48, 0x30, 0x2b, 0x8e, 0x40, 0x29, 0x40, + 0x30, 0x04, 0x70, 0x30, 0x8a, 0x95, 0x40, 0xf0, 0x4b, 0x30, 0xb1, 0xd1, + 0x38, 0x01, 0x60, 0x18, 0xde, 0x67, 0x28, 0xfc, 0x76, 0x40, 0x1c, 0x53, + 0x48, 0x19, 0x2b, 0x28, 0xf6, 0x8b, 0x38, 0x94, 0x7b, 0x20, 0x00, 0x00, + 0x12, 0x00, 0x13, 0x00, 0x38, 0x00, 0x11, 0x00, 0x03, 0x00, 0x07, +}; + +static const u8 data_segment_data_w2c_highlights_d63[] = { + 0x01, 0x00, 0x00, 0x10, 0x00, 0x0d, 0x00, 0x06, 0x0a, 0x00, 0x0e, 0x06, + 0xdb, 0x1c, 0x18, 0x0a, 0x15, 0x07, 0x36, 0x47, 0x00, 0x01, 0x56, 0x07, + 0x85, 0x04, 0x7d, 0x1b, 0x01, 0x3d, 0x27, 0x2a, 0xd9, 0x10, 0x31, 0x60, + 0xc8, 0x30, 0xbc, 0x3b, 0x18, 0x55, 0x69, 0x38, 0x25, 0xec, 0x28, 0x05, + 0x02, 0x39, 0x1f, 0xea, 0x20, 0x00, 0x00, 0x00, 0xfd, 0x10, 0x21, 0x26, + 0x26, 0x38, 0xb7, 0xf0, 0x28, 0x42, 0x01, 0x31, 0x7a, 0x47, 0x10, 0x60, + 0x21, 0x10, 0xae, 0x0e, 0x21, 0xab, 0x2e, 0x21, 0xce, 0x15, 0x31, 0x86, + 0x36, 0x40, 0xec, 0x04, 0x31, 0xff, 0x65, 0x40, 0x76, 0xf3, 0x18, 0xfc, + 0xf4, 0x20, 0x29, 0xc0, 0x30, 0x5c, 0xc9, 0x28, 0xeb, 0x23, 0x20, 0x38, + 0xeb, 0x40, 0xab, 0x77, 0x38, 0xba, 0x17, 0x39, 0x23, 0x06, 0x51, 0x36, + 0xe5, 0x38, 0x4f, 0x21, 0x10, 0xdf, 0x19, 0x31, 0x4e, 0x60, 0x30, 0x7c, + 0x61, 0x18, 0xb8, 0x16, 0x41, 0xf3, 0xf5, 0x40, 0xa3, 0x0f, 0x29, 0xef, + 0xfb, 0x18, 0xfb, 0x1a, 0x29, 0x06, 0x00, 0x11, 0xa6, 0xae, 0x30, 0x18, + 0xed, 0x20, 0x7e, 0xc9, 0x30, 0xd1, 0x26, 0x28, 0xac, 0xc7, 0x18, 0xd1, + 0x04, 0x49, 0x12, 0x06, 0x39, 0xe5, 0x7a, 0x28, 0x01, 0xe0, 0x18, 0x6f, + 0x20, 0x18, 0x48, 0x09, 0x49, 0xdf, 0x09, 0x49, 0xea, 0x20, 0x18, 0x38, + 0x39, 0x28, 0xde, 0xfb, 0x18, 0x26, 0x26, 0x48, 0xde, 0xe7, 0x28, 0x38, + 0x06, 0x31, 0x69, 0xe8, 0x20, 0x94, 0xfb, 0x20, 0xdc, 0x88, 0x30, 0x26, + 0x65, 0x20, 0xb1, 0x09, 0x21, 0xa6, 0x12, 0x39, 0x35, 0x19, 0x31, 0x36, + 0xe5, 0x20, 0x00, 0x00, 0x00, 0x47, 0xe2, 0x28, 0x02, 0x21, 0x20, 0x45, + 0x22, 0x38, 0x93, 0x64, 0x48, 0x00, 0x0f, 0x29, 0x23, 0x06, 0x31, 0x1d, + 0x0b, 0x41, 0x00, 0x1b, 0x29, 0xde, 0xe7, 0x38, 0xe2, 0x09, 0x31, 0x21, + 0xeb, 0x30, 0xb2, 0x05, 0x29, 0x30, 0x20, 0x30, 0xe7, 0x23, 0x40, 0xf4, + 0x73, 0x40, 0xa1, 0x61, 0x28, 0x04, 0xf0, 0x30, 0x5f, 0x3a, 0x29, 0x51, + 0x43, 0x21, 0x01, 0x08, 0x19, 0x24, 0x32, 0x28, 0xd0, 0x25, 0x30, 0x4b, + 0x29, 0x30, 0x0b, 0x46, 0x28, 0xc4, 0xe9, 0x20, 0xac, 0x73, 0x48, 0xf0, + 0xcb, 0x30, 0xdd, 0xe7, 0x40, 0x37, 0xe5, 0x30, 0xc0, 0x01, 0x41, 0x9e, + 0x18, 0x39, 0x19, 0x2b, 0x28, 0xaa, 0xf5, 0x30, 0xfa, 0x19, 0x31, 0xf6, + 0x0b, 0x39, 0xd5, 0x08, 0x41, 0x75, 0xf4, 0x28, 0x00, 0x00, 0x12, 0x00, + 0x13, 0x01, 0x13, 0x02, 0x13, 0x03, 0x14, 0x03, 0x13, 0x00, 0x38, 0x00, + 0x11, 0x04, 0x03, 0x00, 0x07, +}; + +static const u8 data_segment_data_w2c_highlights_d64[] = { + 0x02, 0x04, 0x23, 0x03, 0x00, 0x02, 0x16, 0x0e, 0x34, 0x22, 0x04, 0x22, + 0x02, 0x15, 0x0a, 0x0a, 0x75, 0x38, 0xf0, 0x2e, 0x48, 0x9d, 0xa3, 0x28, + 0x64, 0xd1, 0x18, 0x11, 0x2e, 0x48, 0xeb, 0xa3, 0x20, 0xb7, 0xb5, 0x20, + 0xac, 0xc7, 0x18, 0x14, 0xb7, 0x40, 0x90, 0xc0, 0x18, 0x77, 0xc7, 0x28, + 0x5a, 0xc0, 0x38, 0x6f, 0xa0, 0x18, 0x06, 0xe0, 0x10, 0x5f, 0x1a, 0x29, + 0x09, 0xb7, 0x38, 0x04, 0x6f, 0x48, 0x3a, 0xd0, 0x20, 0x01, 0xe8, 0x18, + 0x00, 0x00, 0x00, 0x74, 0x2e, 0x40, 0xb6, 0xa9, 0x50, 0x7c, 0xd8, 0x28, + 0xe8, 0x80, 0x10, 0x3d, 0x37, 0x19, 0x19, 0xab, 0x28, 0xc8, 0xd7, 0x38, + 0x7f, 0x6a, 0x58, 0xef, 0xc1, 0x38, 0xaf, 0x37, 0x28, 0x59, 0xaf, 0x28, + 0xb6, 0xa9, 0x20, 0xd6, 0xb7, 0x38, 0x99, 0xb8, 0x28, 0xb0, 0x99, 0x28, + 0xaf, 0x37, 0x20, 0x38, 0xb9, 0x28, 0x88, 0xc1, 0x18, 0xf9, 0xe4, 0x18, + 0x70, 0xac, 0x38, 0x60, 0xa1, 0x10, 0xea, 0xa0, 0x18, 0xab, 0x0e, 0x21, + 0xa6, 0xce, 0x30, 0xc3, 0xae, 0x30, 0x4f, 0xa1, 0x10, 0x7a, 0xc7, 0x10, + 0x3d, 0x31, 0x40, 0x90, 0xd9, 0x20, 0x18, 0x66, 0x60, 0x7c, 0x41, 0x18, + 0x6e, 0xba, 0x28, 0xff, 0xac, 0x20, 0xec, 0xb4, 0x48, 0x00, 0x00, 0x13, + 0x01, 0x13, 0x02, 0x13, 0x03, 0x13, 0x04, 0x12, 0x00, 0x11, 0x00, 0x15, + 0x00, 0x03, 0x00, 0x07, +}; + +static const u8 data_segment_data_w2c_highlights_d65[] = { + 0x29, 0x00, 0x48, 0x02, 0x00, 0x09, 0x15, 0x09, 0x0c, 0x02, 0x06, 0x73, + 0x3c, 0x12, 0x1f, 0x12, 0x1e, 0xa4, 0x18, 0x2d, 0x8f, 0x68, 0xac, 0x52, + 0x48, 0x07, 0x84, 0x68, 0x35, 0x81, 0x28, 0x23, 0x26, 0x50, 0x7f, 0x4c, + 0x60, 0x87, 0x93, 0x40, 0xd6, 0x4c, 0x60, 0x20, 0xba, 0x28, 0x44, 0x97, + 0x18, 0x86, 0x36, 0x40, 0x00, 0x00, 0x00, 0x16, 0x2b, 0x40, 0x25, 0x81, + 0x78, 0xf3, 0x82, 0x60, 0xef, 0x24, 0x58, 0x2d, 0x81, 0x68, 0x26, 0x26, + 0x38, 0x6c, 0x2c, 0x30, 0xa3, 0x2f, 0x28, 0xc3, 0x61, 0x18, 0x7b, 0x82, + 0x20, 0x66, 0x97, 0x38, 0xec, 0x4d, 0x68, 0x2a, 0xa1, 0x10, 0x00, 0x00, + 0x00, 0xc0, 0x76, 0x30, 0x00, 0x00, 0x00, 0x5a, 0x97, 0x38, 0xfb, 0x82, + 0x20, 0x55, 0x97, 0x38, 0x79, 0x91, 0x50, 0x35, 0xa3, 0x20, 0xf9, 0x48, + 0x80, 0xb2, 0x2a, 0x40, 0xf3, 0x82, 0x90, 0x00, 0x00, 0x00, 0x05, 0x42, + 0x98, 0xe9, 0x98, 0x30, 0x2b, 0x82, 0x10, 0x5c, 0x84, 0x30, 0x00, 0x00, + 0x00, 0xd5, 0x8f, 0x60, 0x12, 0x2a, 0x40, 0x25, 0x81, 0xa8, 0x02, 0x21, + 0x20, 0xf2, 0x24, 0x40, 0x40, 0x97, 0x38, 0x57, 0x95, 0x18, 0x66, 0x25, + 0x28, 0x74, 0x90, 0x58, 0x7c, 0x52, 0x48, 0x2d, 0x81, 0x38, 0xd3, 0xb8, + 0x30, 0x24, 0x32, 0x28, 0x33, 0xa2, 0x10, 0x05, 0x42, 0x38, 0x19, 0x2b, + 0x28, 0x76, 0x82, 0x30, 0xd0, 0x25, 0x30, 0x0b, 0x26, 0x28, 0x7d, 0x82, + 0x50, 0x57, 0xb5, 0x40, 0x4f, 0x21, 0x10, 0xa8, 0x90, 0x38, 0xf1, 0x7a, + 0x28, 0xfc, 0x4b, 0x60, 0xfb, 0x82, 0x50, 0x6f, 0x91, 0x50, 0xb3, 0xbb, + 0x18, +}; + +static const u8 data_segment_data_w2c_highlights_d66[] = { + 0x01, 0x07, 0x1d, 0x1a, 0x04, 0x02, 0x02, 0x13, 0x1e, 0x00, 0x00, 0x00, + 0x20, 0x24, 0x36, 0x02, 0x0a, 0x05, 0x00, 0x3a, 0x08, 0x00, 0x11, 0x06, + 0x00, 0x2d, 0x38, 0x1c, 0x09, 0x1b, 0x90, 0x07, 0xf6, 0x90, 0x41, 0x71, + 0x73, 0x28, 0xa7, 0x98, 0x39, 0xc8, 0x96, 0x41, 0x59, 0x2f, 0x28, 0x38, + 0x86, 0x31, 0xb9, 0x95, 0x41, 0x1b, 0x80, 0x81, 0xcb, 0x99, 0x31, 0x4f, + 0x21, 0x10, 0x8b, 0x8b, 0x41, 0x45, 0x22, 0x38, 0x18, 0xed, 0x20, 0xd9, + 0x89, 0x39, 0x20, 0x94, 0x49, 0xea, 0x20, 0x18, 0xf9, 0x64, 0x19, 0x26, + 0x8e, 0x41, 0x60, 0xa8, 0x30, 0x68, 0x41, 0x28, 0x5f, 0x1a, 0x29, 0xde, + 0xe7, 0x28, 0x24, 0x73, 0x31, 0x01, 0x68, 0x19, 0x1f, 0xea, 0x20, 0x06, + 0x98, 0x31, 0x67, 0xf8, 0x38, 0xe5, 0x5a, 0x28, 0x70, 0x99, 0x31, 0x01, + 0xe0, 0x18, 0xbc, 0x9b, 0x19, 0x6e, 0x81, 0x48, 0x96, 0x69, 0x31, 0xf6, + 0x8b, 0x39, 0x38, 0x39, 0x28, 0x19, 0x67, 0x31, 0xe7, 0x89, 0x29, 0x1f, + 0xea, 0x40, 0x0b, 0x88, 0x61, 0x4e, 0x40, 0x30, 0xa6, 0xce, 0x30, 0xdc, + 0xc8, 0x30, 0x29, 0x80, 0x69, 0x81, 0x87, 0x59, 0x19, 0x2b, 0x28, 0x90, + 0x80, 0x19, 0x06, 0x60, 0x11, 0xe9, 0x93, 0x49, 0x76, 0xf4, 0x38, 0x5c, + 0x89, 0x29, 0xab, 0x0e, 0x21, 0xfc, 0x93, 0x49, 0x26, 0x65, 0x20, 0x55, + 0x69, 0x38, 0x94, 0xfb, 0x20, 0xeb, 0x23, 0x20, 0xcf, 0x77, 0x38, 0xbb, + 0xa3, 0x40, 0xe8, 0x8e, 0x49, 0x2f, 0x2c, 0x20, 0x56, 0x7a, 0x29, 0x04, + 0xf0, 0x30, 0x19, 0x67, 0x19, 0x85, 0x92, 0x51, 0xb5, 0x33, 0x48, 0x6f, + 0x20, 0x18, 0x51, 0x8a, 0x39, 0x08, 0xeb, 0x20, 0x5c, 0x36, 0x40, 0x02, + 0x21, 0x20, 0x00, 0x00, 0x00, 0x60, 0x21, 0x10, 0x00, 0x00, 0x00, 0xd4, + 0x87, 0x39, 0xfe, 0xf6, 0x30, 0x21, 0x8b, 0x31, 0x29, 0xa0, 0x30, 0xb1, + 0x31, 0x39, 0xfc, 0xf6, 0x40, 0x0d, 0x79, 0x31, 0xf0, 0xab, 0x30, 0x24, + 0x32, 0x28, 0xbd, 0x87, 0x41, 0x4b, 0x29, 0x30, 0xd0, 0x25, 0x30, 0x4f, + 0xcc, 0x30, 0x25, 0xec, 0x28, 0x54, 0x36, 0x40, 0x1b, 0x8e, 0x41, 0x38, + 0x89, 0x41, 0xc9, 0x4c, 0x21, 0x1a, 0x67, 0x29, 0xe8, 0xac, 0x40, 0x43, + 0x72, 0x29, 0xc4, 0xe9, 0x20, 0x57, 0x82, 0x61, 0x00, 0x00, 0x12, 0x00, + 0x13, 0x01, 0x13, 0x02, 0x13, 0x03, 0x13, 0x00, 0x14, 0x00, 0x38, 0x00, + 0x03, 0x00, 0x07, 0x00, 0x3c, 0x00, 0x19, 0x00, 0x11, +}; + +static const u8 data_segment_data_w2c_highlights_d67[] = { + 0x4e, 0x2f, 0x00, 0x30, 0x2c, 0x00, 0x06, 0x02, 0x64, 0x79, 0x30, 0x14, + 0x70, 0x20, 0x58, 0x2d, 0x78, 0xf8, 0x72, 0x20, 0xf7, 0x2a, 0x88, 0xd2, + 0x49, 0x38, 0xee, 0x79, 0x28, 0x11, 0x47, 0x48, 0x77, 0x8a, 0x48, 0x2b, + 0x72, 0x20, 0x24, 0x70, 0x60, 0xeb, 0x2f, 0x58, 0xe1, 0x2f, 0x60, 0x33, + 0x33, 0x48, 0x65, 0x8d, 0x68, 0xe5, 0x31, 0x50, 0xf7, 0x91, 0x50, 0xc6, + 0x35, 0x40, 0x7f, 0x93, 0x48, 0x00, 0x00, 0x00, 0x15, 0x4a, 0x40, 0xaa, + 0x83, 0x68, 0x58, 0x85, 0x98, 0x5e, 0x79, 0x30, 0xe4, 0x77, 0x30, 0x04, + 0x70, 0x38, 0xfd, 0x51, 0x40, 0x23, 0x56, 0x40, 0xaa, 0x83, 0xa0, 0x00, + 0x71, 0x58, 0x44, 0x79, 0x20, 0xf4, 0x8f, 0x58, 0x00, 0x00, 0x11, 0x00, + 0x3c, 0x00, 0x38, 0x00, 0x0e, +}; + +static const u8 data_segment_data_w2c_highlights_d68[] = { + 0x01, 0x00, 0x00, 0x4e, 0x31, 0x24, 0x32, 0x01, 0x11, 0x00, 0x0a, 0x01, + 0x25, 0x88, 0x21, 0x10, 0x21, 0x00, 0x04, 0x50, 0x11, 0x02, 0x9d, 0x25, + 0x09, 0x00, 0x36, 0x0c, 0x5f, 0x04, 0x24, 0x09, 0xd1, 0xc0, 0x20, 0x0f, + 0xc5, 0x31, 0xa7, 0xb8, 0x38, 0x69, 0xd6, 0x28, 0x38, 0x46, 0x31, 0xde, + 0xc7, 0x28, 0x02, 0x21, 0x20, 0x60, 0xa0, 0x30, 0xe0, 0xa5, 0x30, 0xc5, + 0x34, 0x48, 0x26, 0x26, 0x38, 0x00, 0x00, 0x00, 0xfe, 0xb2, 0x40, 0x57, + 0xb6, 0x28, 0x5f, 0xfa, 0x28, 0xb3, 0xa8, 0x30, 0x6e, 0x61, 0x48, 0x71, + 0x93, 0x28, 0x86, 0x36, 0x40, 0xd4, 0xa7, 0x38, 0x88, 0xc1, 0x19, 0xaa, + 0xd5, 0x30, 0x04, 0xd0, 0x30, 0x28, 0x40, 0x11, 0x00, 0x00, 0x00, 0x5c, + 0xa9, 0x28, 0xb9, 0xb5, 0x40, 0x00, 0x00, 0x00, 0x4f, 0x21, 0x10, 0xc7, + 0x34, 0x38, 0xc3, 0xe3, 0x21, 0xd4, 0xcd, 0x49, 0x84, 0xdb, 0x21, 0x59, + 0x2f, 0x28, 0xd1, 0xc4, 0x30, 0x40, 0xa9, 0x18, 0x05, 0x32, 0x21, 0x45, + 0x22, 0x38, 0xcb, 0xb9, 0x30, 0xf0, 0xab, 0x30, 0xab, 0xee, 0x20, 0x36, + 0xc5, 0x20, 0x1b, 0xae, 0x40, 0x92, 0xe2, 0x19, 0x8b, 0xab, 0x40, 0xd0, + 0x25, 0x30, 0x4e, 0x40, 0x30, 0xac, 0xa7, 0x18, 0x19, 0x2b, 0x28, 0xc6, + 0xc8, 0x51, 0x68, 0x41, 0x28, 0x41, 0xd4, 0x28, 0x63, 0x72, 0x31, 0xea, + 0x20, 0x18, 0xe2, 0x49, 0x31, 0xcc, 0xc0, 0x39, 0x5f, 0x36, 0x28, 0xc9, + 0x2c, 0x21, 0x60, 0x21, 0x10, 0x29, 0xa0, 0x30, 0x67, 0x25, 0x20, 0x4f, + 0xb1, 0x38, 0xf9, 0xe8, 0x19, 0x94, 0xdb, 0x20, 0x01, 0xc0, 0x18, 0x3a, + 0xae, 0x28, 0x44, 0xae, 0x40, 0x9a, 0xc9, 0x31, 0xe8, 0xae, 0x48, 0x6f, + 0x20, 0x18, 0xe3, 0xa3, 0x18, 0xc8, 0xb6, 0x40, 0xb6, 0x29, 0x20, 0x2f, + 0x2c, 0x20, 0x0b, 0xc8, 0x38, 0xdf, 0xc1, 0x29, 0xb7, 0xd0, 0x28, 0x0a, + 0xae, 0x40, 0x90, 0x40, 0x19, 0xd0, 0x87, 0x21, 0xc3, 0xe1, 0x19, 0xac, + 0xac, 0x40, 0xed, 0xaf, 0x38, 0x28, 0xad, 0x28, 0xd6, 0x37, 0x38, 0x42, + 0x41, 0x31, 0x99, 0xd2, 0x21, 0xd9, 0xa8, 0x21, 0xeb, 0x23, 0x20, 0xc3, + 0xca, 0x30, 0xc4, 0xc9, 0x20, 0x7b, 0xa5, 0x28, 0x51, 0x03, 0x21, 0x16, + 0xd4, 0x38, 0x24, 0x32, 0x28, 0x23, 0xd5, 0x20, 0x4b, 0x29, 0x30, 0x1f, + 0xca, 0x20, 0xeb, 0xb5, 0x40, 0x92, 0xea, 0x31, 0x1a, 0xb8, 0x38, 0x38, + 0x39, 0x28, 0xd8, 0x46, 0x40, 0x6f, 0xae, 0x30, 0x26, 0x45, 0x20, 0x93, + 0x44, 0x48, 0x8a, 0x47, 0x51, 0x18, 0xcd, 0x20, 0x01, 0xa0, 0x10, 0x25, + 0xcc, 0x28, 0xd1, 0xc0, 0x11, 0xbb, 0x41, 0x11, 0x00, 0x00, 0x12, 0x00, + 0x13, 0x01, 0x13, 0x02, 0x14, 0x02, 0x13, 0x00, 0x38, 0x00, 0x03, 0x00, + 0x07, 0x00, 0x3c, 0x00, 0x15, 0x00, 0x13, 0x21, 0x13, 0x20, 0x13, 0x08, + 0x13, 0x04, 0x13, 0x10, +}; + +static const u8 data_segment_data_w2c_highlights_d69[] = { + 0x01, 0x01, 0x09, 0x60, 0x0b, 0x0c, 0x06, 0x0b, 0x0a, 0x00, 0x07, 0x69, + 0x1e, 0x0a, 0x16, 0x06, 0x06, 0x39, 0x23, 0x00, 0x0a, 0x00, 0x02, 0x00, + 0x00, 0x19, 0x00, 0x08, 0x04, 0x00, 0x68, 0x02, 0x29, 0xb4, 0x48, 0x51, + 0x03, 0x21, 0xe8, 0xc7, 0x30, 0x4f, 0x21, 0x10, 0x6c, 0xd7, 0x30, 0x18, + 0xd5, 0x20, 0x00, 0x00, 0x00, 0xb8, 0x5a, 0x28, 0x1a, 0x78, 0x21, 0xbb, + 0x41, 0x11, 0x5c, 0xa9, 0x28, 0x01, 0xc0, 0x18, 0xa4, 0xb7, 0x38, 0x55, + 0x49, 0x38, 0x29, 0xa0, 0x30, 0xbf, 0xa3, 0x20, 0xc9, 0x2c, 0x21, 0x1c, + 0xd5, 0x40, 0xcd, 0xd8, 0x30, 0xe7, 0xa9, 0x28, 0x02, 0x21, 0x20, 0x5f, + 0xfa, 0x28, 0x3d, 0xc1, 0x30, 0x5e, 0xac, 0x38, 0x6f, 0x20, 0x18, 0x64, + 0x78, 0x21, 0x46, 0x80, 0x11, 0xd1, 0x86, 0x40, 0xa6, 0xdb, 0x18, 0x59, + 0x2f, 0x28, 0x7b, 0xa5, 0x28, 0xeb, 0xb5, 0x40, 0x3a, 0xd5, 0x40, 0x70, + 0x7b, 0x21, 0xac, 0xa7, 0x18, 0x28, 0x40, 0x11, 0xab, 0xee, 0x20, 0x7c, + 0x45, 0x21, 0x19, 0x2b, 0x28, 0x38, 0x39, 0x28, 0x3d, 0xda, 0x28, 0x04, + 0xd0, 0x30, 0xea, 0x20, 0x18, 0x6f, 0xae, 0x30, 0x57, 0x36, 0x28, 0x92, + 0x62, 0x18, 0x94, 0xdb, 0x20, 0x57, 0x2f, 0x38, 0x26, 0x45, 0x20, 0xc3, + 0x61, 0x18, 0x86, 0x36, 0x40, 0x68, 0x41, 0x28, 0x33, 0xa7, 0x50, 0xc4, + 0xc9, 0x20, 0xa1, 0xa5, 0x20, 0x4f, 0x8c, 0x30, 0xb9, 0xb5, 0x40, 0x06, + 0xc7, 0x20, 0xd6, 0x37, 0x38, 0x30, 0x20, 0x30, 0xb9, 0xdb, 0x18, 0x60, + 0x21, 0x10, 0x2b, 0xd3, 0x20, 0x0f, 0x37, 0x29, 0x90, 0x40, 0x19, 0x5f, + 0x36, 0x28, 0x27, 0xc5, 0x18, 0x01, 0x8c, 0x38, 0x0a, 0xae, 0x40, 0x24, + 0x32, 0x28, 0x4b, 0x29, 0x30, 0x0b, 0xc8, 0x38, 0xd0, 0x25, 0x30, 0x45, + 0x22, 0x38, 0x28, 0xd0, 0x30, 0x93, 0xa4, 0x48, 0x01, 0x40, 0x11, 0x05, + 0xb2, 0x20, 0x47, 0x47, 0x48, 0xa6, 0x8e, 0x30, 0xf0, 0xab, 0x40, 0xeb, + 0x23, 0x20, +}; + +static const u8 data_segment_data_w2c_highlights_d70[] = { + 0x1a, 0x04, 0x05, 0xc6, 0xd3, 0x90, 0x58, 0x0e, 0x41, 0x18, 0x6b, 0x4e, + 0x30, 0x73, 0x35, 0x18, 0x46, 0x80, 0x38, 0x6a, 0x4a, 0x50, 0x28, 0x60, + 0x10, 0x6d, 0x20, 0x50, 0x51, 0x4f, 0x28, 0xaf, 0x47, 0x18, 0xda, 0x45, + 0x20, 0xf9, 0x48, 0x18, 0x00, 0x5a, 0x30, 0xae, 0x58, 0x38, 0x11, 0x36, + 0x28, 0xd9, 0x48, 0x20, 0xfe, 0x49, 0x50, 0xd2, 0x5a, 0x20, 0xf6, 0x36, + 0x18, +}; + +static const u8 data_segment_data_w2c_highlights_d71[] = { + 0x13, 0x26, 0x02, 0x01, 0x11, 0x1f, 0x06, 0x03, 0x02, 0x4b, 0x2d, 0x0e, + 0x00, 0x53, 0x1b, 0x18, 0x5f, 0x4a, 0x58, 0x01, 0xc0, 0x10, 0x02, 0x21, + 0x20, 0x74, 0x4e, 0x40, 0x4d, 0x50, 0x40, 0xb6, 0xc9, 0x20, 0x3d, 0x17, + 0x19, 0x51, 0x3a, 0x28, 0x52, 0x33, 0x30, 0xf8, 0x6e, 0x48, 0xc4, 0x46, + 0x20, 0x91, 0x38, 0x30, 0x7f, 0x6a, 0x58, 0x64, 0xb1, 0x18, 0xff, 0x2c, + 0x20, 0xa1, 0xa1, 0x28, 0x06, 0xc0, 0x10, 0x7c, 0x38, 0x28, 0x04, 0x8f, + 0x48, 0xb0, 0x2a, 0x20, 0xcd, 0x74, 0x38, 0x01, 0xc8, 0x18, 0x74, 0x4e, + 0x48, 0xef, 0xa1, 0x38, 0x7a, 0x27, 0x10, 0x38, 0x39, 0x28, 0xeb, 0x23, + 0x20, 0x19, 0x89, 0x58, 0xab, 0xee, 0x20, 0xf9, 0xc4, 0x18, 0xa6, 0xae, + 0x30, 0xf0, 0x85, 0x60, 0x59, 0x2f, 0x28, 0x5f, 0xfa, 0x28, 0xa1, 0x25, + 0x20, 0xc0, 0x34, 0x28, 0x6f, 0x20, 0x18, 0x60, 0x21, 0x10, 0xdc, 0x23, + 0x18, 0x4f, 0x21, 0x10, 0xea, 0x20, 0x18, 0x0f, 0x37, 0x29, 0x7a, 0x38, + 0x38, 0x7c, 0x81, 0x70, 0xed, 0x23, 0x21, 0x7c, 0x41, 0x18, +}; + +static const u8 data_segment_data_w2c_highlights_d72[] = { + 0x13, 0x05, 0x07, 0x0a, 0x06, 0xa0, 0x10, 0x16, 0x51, 0xac, 0x20, 0xa1, + 0xa1, 0x28, 0x31, 0xfb, 0x20, 0x37, 0xf7, 0x20, 0xa0, 0x6b, 0x40, 0xb0, + 0x2a, 0x20, 0x02, 0x21, 0x20, 0x27, 0xe3, 0x18, 0xd2, 0xa8, 0x20, 0xef, + 0xf8, 0x30, 0x42, 0x81, 0x20, 0xdc, 0x48, 0x30, 0xe3, 0xb8, 0x28, 0x52, + 0xa6, 0x18, 0x3d, 0xfa, 0x28, 0x47, 0xf7, 0x28, 0x28, 0x60, 0x10, 0x38, + 0xfa, 0x28, 0x4f, 0x21, 0x10, 0xa6, 0x4e, 0x30, 0xff, 0xb4, 0x28, 0xeb, + 0x23, 0x20, 0x18, 0xf5, 0x20, 0xee, 0xc6, 0x20, 0xe8, 0xe7, 0x30, 0x29, + 0xda, 0x28, 0x01, 0x20, 0x10, 0x46, 0x21, 0x10, 0x88, 0x21, 0x18, 0x00, + 0x00, 0x12, 0x00, 0x14, 0x01, 0x14, 0x00, 0x13, 0x02, 0x13, 0x00, 0x03, + 0x00, 0x38, +}; + +static const u8 data_segment_data_w2c_highlights_d73[] = { + 0x0a, 0x96, 0x01, 0x00, 0x66, 0x00, 0x47, 0x00, 0x5c, 0x05, 0x80, 0x29, + 0x00, 0x03, 0x3f, 0x01, 0xab, 0x8e, 0x20, 0x63, 0x12, 0x31, 0x02, 0x21, + 0x20, 0xeb, 0x23, 0x20, 0xca, 0x30, 0x38, 0x92, 0x6a, 0x18, 0x00, 0x61, + 0x30, 0x42, 0x01, 0x21, 0x1c, 0x49, 0x41, 0xf9, 0x64, 0x18, 0xc6, 0x7b, + 0x18, 0xdc, 0xe8, 0x30, 0x5c, 0x7b, 0x20, 0xad, 0x39, 0x28, 0x01, 0x68, + 0x38, 0xaa, 0x39, 0x28, 0xdc, 0x23, 0x18, 0xa6, 0xce, 0x30, 0x46, 0x21, + 0x10, 0x0b, 0xd1, 0x58, 0x51, 0x3a, 0x28, 0x4f, 0x21, 0x10, 0xdd, 0x79, + 0x18, 0x10, 0xa6, 0x48, 0x01, 0x68, 0x18, 0x58, 0x7b, 0x20, 0x60, 0x23, + 0x31, 0x6f, 0x20, 0x18, 0x38, 0x39, 0x28, 0x58, 0x43, 0x21, 0xf2, 0x44, + 0x18, 0x4d, 0x7a, 0x18, 0x54, 0x7b, 0x20, 0x19, 0x67, 0x18, 0x79, 0x13, + 0x31, 0x5f, 0x9a, 0x28, 0xb6, 0x69, 0x20, 0x06, 0x60, 0x10, 0xc3, 0x7b, + 0x18, 0x05, 0xc2, 0x38, 0xff, 0x2c, 0x20, 0x00, 0x00, 0x12, 0x00, 0x11, + 0x00, 0x15, 0x00, 0x03, 0x00, 0x07, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, +}; + +static const u8 data_segment_data_w2c_highlights_d74[] = { + 0x01, 0x01, 0x02, 0x06, 0x01, 0x19, 0x07, 0x02, 0x00, 0x03, 0x01, 0x02, + 0x09, 0x0e, 0x03, 0x4f, 0x04, 0x05, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x01, + 0x45, 0x00, 0x00, 0x02, 0x11, 0x03, 0x03, 0x04, 0x01, 0x00, 0x01, 0x00, + 0x04, 0x0e, 0x00, 0x08, 0x3c, 0x00, 0x01, 0x14, 0x04, 0x03, 0x09, 0x54, + 0x01, 0x00, 0x14, 0x01, 0x04, 0x07, 0x00, 0x0d, 0x00, 0x16, 0x0d, 0x56, + 0x09, 0x05, 0x1b, 0xf0, 0xeb, 0x40, 0xf9, 0x64, 0x19, 0x64, 0x6c, 0x48, + 0xcb, 0xf9, 0x30, 0x2f, 0x2c, 0x20, 0xe3, 0x35, 0x19, 0x52, 0x31, 0x39, + 0x02, 0x21, 0x48, 0xeb, 0x23, 0x20, 0x58, 0x36, 0x21, 0xa4, 0x36, 0x28, + 0x67, 0x06, 0x31, 0x90, 0x04, 0x61, 0x7b, 0xe5, 0x60, 0x2f, 0xf9, 0x30, + 0x18, 0x6e, 0x21, 0x3a, 0xec, 0x30, 0x69, 0x3a, 0x29, 0xc3, 0xcc, 0x20, + 0xdc, 0x03, 0x19, 0xce, 0x15, 0x21, 0x92, 0x31, 0x29, 0x1a, 0x0c, 0x39, + 0xd4, 0xe7, 0x38, 0x0f, 0x25, 0x30, 0xda, 0xf3, 0x30, 0xe3, 0x03, 0x19, + 0xff, 0x20, 0x10, 0x93, 0xe4, 0x48, 0x28, 0x09, 0x49, 0x86, 0x60, 0x11, + 0x4a, 0x34, 0x19, 0x11, 0x60, 0x11, 0x72, 0xe3, 0x20, 0x11, 0x2b, 0x19, + 0x7b, 0x3a, 0x29, 0x20, 0x29, 0x49, 0xb4, 0x39, 0x21, 0x5e, 0xec, 0x38, + 0xf1, 0xe6, 0x50, 0xa3, 0x2f, 0x28, 0x9d, 0xe3, 0x48, 0x8c, 0xe1, 0x28, + 0xcf, 0xe2, 0x58, 0x72, 0xe0, 0x38, 0x43, 0xd2, 0x38, 0x56, 0x2a, 0x51, + 0xa6, 0xae, 0x30, 0xd0, 0x25, 0x30, 0x05, 0xa2, 0x38, 0xd8, 0x02, 0x19, + 0xa5, 0x24, 0x49, 0xb2, 0x25, 0x28, 0x03, 0xd4, 0x48, 0x91, 0x28, 0x48, + 0x19, 0x2b, 0x28, 0x79, 0xef, 0x48, 0x38, 0x20, 0x19, 0x3c, 0xcf, 0x48, + 0xa2, 0xf4, 0x20, 0x2e, 0xf5, 0x20, 0x92, 0x62, 0x11, 0x57, 0x38, 0x39, + 0xa8, 0x66, 0x38, 0xf0, 0x61, 0x11, 0x5f, 0x2f, 0x29, 0x06, 0x60, 0x11, + 0x5f, 0x5a, 0x29, 0xa5, 0x24, 0x41, 0x26, 0xe5, 0x20, 0x01, 0x00, 0x11, + 0xbe, 0xf2, 0x50, 0xe8, 0xee, 0x48, 0x96, 0x34, 0x31, 0xdc, 0x68, 0x30, + 0x04, 0xd0, 0x30, 0x4d, 0x32, 0x50, 0xdc, 0x03, 0x69, 0xd6, 0xe5, 0x20, + 0xd2, 0x3b, 0x19, 0x87, 0x2f, 0x28, 0xbb, 0xed, 0x48, 0xee, 0x3a, 0x19, + 0xba, 0xe5, 0x48, 0x86, 0x36, 0x40, 0xef, 0x04, 0x59, 0x4f, 0x21, 0x10, + 0x6a, 0x2a, 0x20, 0xdb, 0x62, 0x11, 0x55, 0xee, 0x30, 0x68, 0xe1, 0x28, + 0x8d, 0xd0, 0x38, 0xf3, 0xaa, 0x20, 0xf2, 0x44, 0x40, 0x4b, 0xce, 0x38, + 0x64, 0x91, 0x18, 0x01, 0x68, 0x19, 0x29, 0xeb, 0x38, 0x7b, 0xe7, 0x40, + 0x2f, 0x2c, 0x10, 0x30, 0x29, 0x48, 0xe3, 0x2a, 0x40, 0x60, 0x21, 0x10, + 0x6c, 0x2c, 0x30, 0x86, 0xe4, 0x58, 0xfe, 0xf2, 0x40, 0xee, 0x2a, 0x29, + 0x59, 0x22, 0x21, 0xdf, 0x43, 0x50, 0xee, 0x30, 0x31, 0x8a, 0xe6, 0x48, + 0x9c, 0x1a, 0x29, 0x19, 0x6e, 0x19, 0x1e, 0x31, 0x20, 0x42, 0xe1, 0x20, + 0x6d, 0x40, 0x28, 0xa0, 0xf4, 0x30, 0x5a, 0xe0, 0x20, 0xab, 0x4e, 0x21, + 0xc0, 0xf6, 0x40, 0xb0, 0x2a, 0x20, 0xeb, 0xf5, 0x40, 0xda, 0x2a, 0x51, + 0xc9, 0x61, 0x11, 0xfc, 0x04, 0x41, 0x7b, 0x2e, 0x21, 0x02, 0x21, 0x20, + 0x1b, 0xee, 0x40, 0x94, 0x28, 0x30, 0x66, 0x25, 0x28, 0x90, 0x31, 0x39, + 0xa5, 0x06, 0x51, 0x12, 0x0a, 0x41, 0x38, 0x26, 0x21, 0x56, 0x2a, 0x48, + 0x8f, 0xf4, 0x48, 0x60, 0x22, 0x20, 0xa4, 0x2e, 0x21, 0x00, 0x00, 0x12, + 0x00, 0x13, 0x01, 0x13, 0x02, 0x14, 0x02, 0x14, 0x00, 0x38, 0x00, 0x13, + 0x00, 0x11, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x15, +}; + +static const u8 data_segment_data_w2c_highlights_d75[] = { + 0x02, 0x36, 0xef, 0x01, 0x0a, 0x72, 0xfe, 0x0b, 0x0a, 0x00, 0x06, 0x53, + 0x4c, 0x04, 0x41, 0xf0, 0xab, 0x40, 0x01, 0xe0, 0x18, 0x2d, 0xb1, 0x58, + 0x0f, 0x42, 0x18, 0x40, 0xe9, 0x18, 0xdc, 0x88, 0x30, 0xa1, 0x25, 0x20, + 0x55, 0xcf, 0x18, 0x28, 0xa0, 0x10, 0xf2, 0x24, 0x40, 0x0c, 0x98, 0x38, + 0xc3, 0xaa, 0x30, 0x01, 0x48, 0x18, 0xea, 0x20, 0x18, 0xd4, 0xa7, 0x38, + 0x1f, 0xd6, 0x20, 0x6f, 0x20, 0x18, 0x42, 0x61, 0x20, 0xb0, 0x2a, 0x20, + 0x05, 0x82, 0x38, 0xb6, 0x29, 0x20, 0x19, 0x2b, 0x28, 0x1f, 0xea, 0x20, + 0x4d, 0xf1, 0x18, 0xf3, 0xa5, 0x48, 0x30, 0x20, 0x30, 0x06, 0xc0, 0x10, + 0xa7, 0xb8, 0x38, 0xc4, 0xe9, 0x20, 0xf1, 0xd3, 0x20, 0x4f, 0x21, 0x10, + 0x88, 0xfb, 0x20, 0x00, 0x00, 0x00, 0xa7, 0xa1, 0x30, 0xcb, 0xc0, 0x18, + 0x01, 0xa0, 0x10, 0x00, 0x00, 0x00, 0x74, 0x38, 0x30, 0x68, 0xa1, 0x28, + 0xd5, 0xe0, 0x28, 0x90, 0xa0, 0x18, 0x1c, 0x34, 0x20, 0xff, 0x20, 0x10, + 0xc0, 0xdb, 0x18, 0x60, 0x21, 0x10, 0x6a, 0xf6, 0x28, 0x92, 0xb2, 0x50, + 0xd9, 0xa9, 0x38, 0x7f, 0xe7, 0x20, 0xc0, 0xf6, 0x30, 0x6e, 0x8a, 0x18, + 0x0e, 0xb4, 0x38, 0xab, 0x0e, 0x21, 0x88, 0x41, 0x18, 0xd1, 0xe4, 0x30, + 0xdc, 0xa3, 0x18, 0xf2, 0xa4, 0x18, 0x7b, 0x8e, 0x20, 0xde, 0xe7, 0x28, + 0x46, 0x21, 0x10, 0xdc, 0xc8, 0x18, 0x6a, 0x26, 0x28, 0xad, 0x39, 0x28, + 0x4e, 0x80, 0x30, 0x02, 0x21, 0x20, 0x9e, 0xc9, 0x18, 0x60, 0x52, 0x30, + 0x8c, 0xa1, 0x18, 0x75, 0x39, 0x20, 0x5f, 0x1a, 0x29, 0x00, 0x00, 0x12, + 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x04, 0x13, 0x00, 0x15, 0x00, 0x38, + 0x00, 0x03, +}; + +static const u8 data_segment_data_w2c_highlights_d76[] = { + 0x1d, 0x18, 0x03, 0x16, 0x36, 0x4a, 0x3b, 0x04, 0x02, 0x00, 0x55, 0x00, + 0x6f, 0x17, 0x08, 0x13, 0x04, 0x0f, 0x05, 0x23, 0x0d, 0x00, 0x00, 0xba, + 0x05, 0x52, 0x00, 0x01, 0x6b, 0x0b, 0x10, 0x4b, 0xdc, 0x23, 0x18, 0x05, + 0xd2, 0x20, 0x02, 0x21, 0x20, 0xc4, 0x09, 0x21, 0xff, 0x20, 0x10, 0x60, + 0xc8, 0x30, 0xd6, 0x37, 0x38, 0x6e, 0x81, 0x48, 0x7b, 0x8e, 0x20, 0xea, + 0x20, 0x18, 0xad, 0x39, 0x28, 0xa6, 0x1a, 0x29, 0x01, 0x48, 0x18, 0x68, + 0xc1, 0x28, 0x60, 0xc0, 0x30, 0x28, 0xcd, 0x28, 0x55, 0xef, 0x18, 0x00, + 0x00, 0x00, 0x45, 0xa2, 0x38, 0xdc, 0x88, 0x30, 0xd1, 0x00, 0x21, 0x8c, + 0xc1, 0x18, 0x74, 0x38, 0x30, 0x15, 0x12, 0x31, 0x07, 0x19, 0x31, 0x90, + 0xc0, 0x18, 0x16, 0x14, 0x39, 0x1f, 0x0a, 0x21, 0x5c, 0x06, 0x29, 0xc9, + 0x6c, 0x21, 0xde, 0x07, 0x29, 0xc0, 0x34, 0x28, 0x6a, 0x26, 0x28, 0x1f, + 0xf6, 0x20, 0x46, 0xc1, 0x10, 0x1c, 0x34, 0x20, 0xc0, 0x16, 0x31, 0xb6, + 0x29, 0x20, 0x01, 0x00, 0x19, 0xe9, 0x19, 0x29, 0xc8, 0xb6, 0x40, 0x42, + 0x61, 0x20, 0xd0, 0x25, 0x30, 0x71, 0x08, 0x19, 0x33, 0x16, 0x29, 0x7f, + 0x07, 0x21, 0x4f, 0x21, 0x10, 0x4d, 0xb3, 0x30, 0x9e, 0xe9, 0x18, 0xda, + 0x12, 0x51, 0x19, 0x2b, 0x28, 0xdb, 0x12, 0x49, 0xd1, 0x04, 0x31, 0x44, + 0xce, 0x40, 0x0f, 0x42, 0x18, 0x30, 0x20, 0x30, 0xf1, 0xf3, 0x20, 0x5f, + 0x3a, 0x29, 0x4d, 0x11, 0x19, 0xf2, 0x24, 0x40, 0xe8, 0x19, 0x31, 0x94, + 0xdb, 0x20, 0x64, 0x51, 0x18, 0xf2, 0x24, 0x18, 0x88, 0x1b, 0x21, 0xcb, + 0xd9, 0x30, 0x6f, 0x20, 0x18, 0x51, 0x43, 0x21, 0x4e, 0xc0, 0x30, 0xd8, + 0xc6, 0x40, 0xa1, 0x25, 0x20, 0x11, 0x0b, 0x31, 0xee, 0x19, 0x31, 0x49, + 0x30, 0x20, 0x06, 0xe0, 0x10, 0x5f, 0x36, 0x28, 0x75, 0x39, 0x20, 0xeb, + 0xb5, 0x40, 0x69, 0x16, 0x29, 0x0e, 0xd4, 0x38, 0x60, 0x21, 0x10, 0x88, + 0x41, 0x18, 0xd4, 0xc7, 0x38, 0xaa, 0x63, 0x11, 0xf8, 0x12, 0x29, 0x29, + 0xc0, 0x30, 0x5b, 0x1a, 0x29, 0xf3, 0x65, 0x48, 0xb7, 0xcf, 0x30, 0xcb, + 0xe0, 0x18, 0xf0, 0xcb, 0x30, 0x01, 0x20, 0x10, 0xd5, 0x00, 0x29, 0xdc, + 0xe8, 0x18, 0xe4, 0x17, 0x39, 0x93, 0xc4, 0x48, 0xf4, 0x19, 0x31, 0x8a, + 0xcf, 0x40, 0x04, 0x10, 0x31, 0x5d, 0x06, 0x21, 0xab, 0x2e, 0x21, 0xf9, + 0xe4, 0x18, 0x56, 0x34, 0x40, 0xc0, 0xfb, 0x18, 0x28, 0xc0, 0x10, 0xb0, + 0x2a, 0x20, 0xd9, 0xc9, 0x38, 0xc3, 0x0a, 0x19, 0x00, 0x00, 0x12, 0x00, + 0x13, 0x01, 0x13, 0x02, 0x13, 0x03, 0x13, 0x05, 0x13, 0x00, 0x15, 0x00, + 0x38, 0x00, 0x03, 0x00, 0x07, 0x00, 0x3c, +}; + +static const u8 data_segment_data_w2c_highlights_d77[] = { + 0x0a, 0x05, 0x17, 0x01, 0x09, 0x00, 0x43, 0x23, 0x25, 0x04, 0x04, 0x03, + 0x01, 0x53, 0x07, 0x1e, 0x00, 0x2b, 0x09, 0x0a, 0x02, 0x0a, 0x04, 0x15, + 0x00, 0x00, 0x0a, 0x00, 0x01, 0x04, 0x34, 0x0f, 0xa1, 0x5a, 0x29, 0xb9, + 0x32, 0x29, 0xd8, 0x06, 0x19, 0xe3, 0x55, 0x19, 0xd9, 0x41, 0x19, 0x7f, + 0x27, 0x21, 0x50, 0x48, 0x21, 0x92, 0x42, 0x39, 0x0f, 0x57, 0x29, 0x16, + 0x39, 0x21, 0xd1, 0x20, 0x49, 0x06, 0x48, 0x31, 0xed, 0x63, 0x20, 0x02, + 0x01, 0x21, 0x36, 0x2e, 0x29, 0x98, 0x25, 0x51, 0x42, 0x5b, 0x20, 0x68, + 0xa1, 0x28, 0x6f, 0x00, 0x19, 0x6a, 0x36, 0x29, 0x57, 0x16, 0x29, 0xf3, + 0x05, 0x31, 0x3a, 0x04, 0x21, 0x19, 0x0b, 0x29, 0x96, 0x0f, 0x31, 0x7b, + 0x4e, 0x21, 0x60, 0x42, 0x41, 0xe7, 0x43, 0x21, 0xe0, 0x5b, 0x19, 0x01, + 0x20, 0x19, 0x0e, 0x46, 0x29, 0xa1, 0x05, 0x21, 0x86, 0x16, 0x41, 0xea, + 0x00, 0x19, 0x38, 0x40, 0x19, 0x42, 0x21, 0x21, 0x06, 0xe0, 0x10, 0xd9, + 0xc8, 0x20, 0x7b, 0x05, 0x29, 0x4a, 0x54, 0x19, 0x3b, 0x5b, 0x19, 0x60, + 0x00, 0x31, 0x29, 0x3a, 0x28, 0x9f, 0x29, 0x29, 0xc4, 0x33, 0x49, 0xa3, + 0x49, 0x49, 0xee, 0x5a, 0x19, 0xc3, 0x2a, 0x31, 0x4f, 0x01, 0x11, 0x5f, + 0x16, 0x29, 0xc9, 0x7b, 0x18, 0xea, 0x08, 0x41, 0x3f, 0x43, 0x70, 0x49, + 0x10, 0x21, 0x01, 0xe8, 0x18, 0x4e, 0x20, 0x19, 0x76, 0x53, 0x19, 0x24, + 0x12, 0x29, 0xcb, 0x4c, 0x51, 0xc3, 0x21, 0x19, 0xf9, 0xe4, 0x18, 0xd8, + 0x42, 0x19, 0xa6, 0xce, 0x30, 0x43, 0x32, 0x39, 0xee, 0x26, 0x20, 0xd6, + 0x17, 0x39, 0xd0, 0x05, 0x31, 0xc4, 0x29, 0x21, 0xc7, 0x41, 0x31, 0x01, + 0xe0, 0x10, 0x30, 0x44, 0x40, 0xab, 0x4d, 0x21, 0x5f, 0x4f, 0x29, 0x7c, + 0x81, 0x18, 0x30, 0x00, 0x31, 0x64, 0x40, 0x19, 0xde, 0x27, 0x29, 0xbb, + 0xe1, 0x10, 0x00, 0x00, 0x03, 0x00, 0x07, 0x00, 0x3c, 0x00, 0x13, 0x01, + 0x13, 0x02, 0x14, 0x00, 0x15, 0x00, 0x12, 0x00, 0x38, 0x00, 0x0e, +}; + +static const u8 data_segment_data_w2c_highlights_d78[] = { + 0x08, 0x01, 0x35, 0x01, 0x02, 0x0e, 0x18, 0xf3, 0xc4, 0x29, 0x20, 0x13, + 0x3a, 0x28, 0xda, 0x2e, 0x38, 0x9b, 0x33, 0x40, 0x3d, 0x21, 0x30, 0xe8, + 0x27, 0x30, 0xde, 0x38, 0x30, 0x72, 0x37, 0x38, 0xe8, 0x27, 0x50, 0xde, + 0x27, 0x28, 0x00, 0x00, 0x00, 0x1b, 0x3a, 0x28, 0x26, 0x3b, 0x20, 0xa0, + 0x27, 0x38, 0x7f, 0x2e, 0x28, 0x79, 0x37, 0x38, 0xde, 0x38, 0x28, 0xe5, + 0x20, 0x58, 0x42, 0x3a, 0x28, 0x01, 0x20, 0x18, 0x60, 0x37, 0x30, 0xc3, + 0x31, 0x50, 0x94, 0x3b, 0x20, 0x6a, 0x30, 0x50, 0x5f, 0x35, 0x40, 0xb6, + 0x3b, 0x18, 0xa8, 0x31, 0x50, 0x00, 0x00, 0x38, +}; + +static const u8 data_segment_data_w2c_highlights_d79[] = { + 0x02, 0x05, 0x06, 0x0d, 0x2d, 0x3b, 0x20, 0x4e, 0x37, 0x38, 0x1b, 0x3a, + 0x28, 0x79, 0x37, 0x38, 0xe8, 0x27, 0x30, 0x2e, 0x3a, 0x28, 0xda, 0x2e, + 0x38, 0x33, 0x3a, 0x28, 0x47, 0x37, 0x38, 0x72, 0x37, 0x38, 0x00, 0x00, + 0x38, +}; + +static const u8 data_segment_data_w2c_highlights_d80[] = { + 0x03, 0x02, 0x00, 0x02, 0x08, 0x0f, 0x05, 0x24, 0x06, 0x07, 0x00, 0x3c, + 0x06, 0x03, 0x01, 0xab, 0x2e, 0x20, 0x3a, 0xa4, 0x20, 0xed, 0x63, 0x20, + 0x36, 0x58, 0x39, 0xb6, 0xa9, 0x20, 0xac, 0xc7, 0x18, 0x02, 0xa1, 0x20, + 0x28, 0x80, 0x10, 0x6e, 0xea, 0x30, 0x68, 0x01, 0x51, 0x5e, 0x2c, 0x39, + 0xea, 0xa0, 0x18, 0x9e, 0x5b, 0x18, 0x19, 0xab, 0x28, 0x06, 0x80, 0x10, + 0xf9, 0x84, 0x18, 0x51, 0x43, 0x20, 0xf2, 0xe4, 0x20, 0xbb, 0x81, 0x10, + 0x5f, 0x3a, 0x28, 0x86, 0xb6, 0x40, 0x36, 0x4a, 0x18, 0x24, 0xb2, 0x50, + 0xa9, 0x5b, 0x18, 0x0f, 0x77, 0x28, 0x4f, 0xa1, 0x10, 0x68, 0x01, 0x29, + 0x49, 0xb0, 0x20, 0x01, 0x88, 0x18, 0x24, 0xb2, 0x28, 0xb4, 0x40, 0x10, + 0x29, 0x20, 0x31, 0x57, 0xb6, 0x28, 0x26, 0x05, 0x21, 0xd0, 0xa5, 0x30, + 0x6a, 0xa6, 0x28, 0x5c, 0xc9, 0x28, 0x01, 0x80, 0x10, 0x30, 0x40, 0x31, + 0x5f, 0xb6, 0x28, 0x00, 0x00, 0x03, 0x00, 0x07, 0x00, 0x3c, 0x00, 0x15, + 0x00, 0x12, 0x00, 0x13, 0x00, 0x13, 0x01, 0x13, 0x02, 0x11, 0x00, 0x0e, + +}; + +static const u8 data_segment_data_w2c_highlights_d81[] = { + 0x1b, 0x14, 0x3c, 0x01, 0xab, 0x2e, 0x20, 0xe3, 0x58, 0x18, 0xfb, 0x85, + 0x20, 0xb9, 0x88, 0x40, 0x7c, 0x64, 0x58, 0xbd, 0x60, 0x58, 0x5f, 0x3a, + 0x28, 0xc0, 0x60, 0x40, 0x52, 0x81, 0x40, 0x00, 0x00, 0x00, 0xc9, 0x84, + 0x40, 0x87, 0x88, 0x58, 0x57, 0x92, 0x50, 0x3c, 0x87, 0x60, 0x51, 0x43, + 0x20, 0x6b, 0x55, 0x18, 0x3d, 0x57, 0x18, 0xc5, 0x84, 0x60, 0x00, 0x00, + 0x03, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x31, +}; + +static const u8 data_segment_data_w2c_highlights_d82[] = { + 0x01, 0x09, 0x17, 0x36, 0x20, 0x00, 0x0d, 0x00, 0x07, 0x00, 0x00, 0x01, + 0x21, 0x0b, 0x06, 0x08, 0x00, 0x39, 0x08, 0x16, 0x02, 0x06, 0x01, 0x04, + 0x11, 0x00, 0x0d, 0x05, 0x15, 0x0a, 0x37, 0x06, 0x3d, 0x45, 0xa0, 0xd1, + 0xb6, 0x38, 0x88, 0xad, 0x78, 0x85, 0x85, 0x68, 0xdf, 0xa3, 0x50, 0x22, + 0xa7, 0x60, 0x60, 0x41, 0x10, 0xeb, 0x43, 0x20, 0xe5, 0xba, 0x28, 0xab, + 0x2e, 0x20, 0x15, 0xb6, 0x20, 0xd0, 0xa3, 0x68, 0xc4, 0x89, 0x20, 0x2f, + 0xb8, 0x38, 0x02, 0x41, 0x20, 0x68, 0xb4, 0x48, 0xe3, 0xa3, 0x18, 0x86, + 0x56, 0x40, 0x17, 0xa2, 0x78, 0xe5, 0xa1, 0x38, 0x93, 0xa7, 0x70, 0x1d, + 0xa5, 0x38, 0xea, 0x40, 0x18, 0x42, 0xb3, 0x30, 0xcd, 0xae, 0x70, 0x5c, + 0xa9, 0x28, 0xae, 0xa5, 0x30, 0x2c, 0x8a, 0x58, 0x55, 0x86, 0x58, 0x19, + 0x4b, 0x28, 0x2b, 0xae, 0x40, 0x03, 0xb4, 0x48, 0x5f, 0x3a, 0x28, 0xfa, + 0xa6, 0x68, 0xee, 0xaa, 0x48, 0x04, 0xbb, 0x20, 0x26, 0xa5, 0x20, 0x4e, + 0x60, 0x30, 0x37, 0x84, 0x60, 0x60, 0xa2, 0x88, 0x5d, 0x86, 0x30, 0x01, + 0xa0, 0x10, 0x95, 0x80, 0xc0, 0x5c, 0x86, 0x38, 0xe0, 0xa6, 0x78, 0xad, + 0xa1, 0x30, 0x94, 0x9b, 0x20, 0xde, 0x87, 0x28, 0x95, 0xa2, 0x48, 0x41, + 0xb6, 0x30, 0x68, 0xa0, 0x40, 0x4f, 0x41, 0x10, 0x73, 0xa7, 0x30, 0x40, + 0x58, 0x30, 0x01, 0x80, 0x18, 0xc9, 0xba, 0x28, 0xe4, 0xa2, 0x80, 0x9a, + 0xb7, 0x28, 0x18, 0x41, 0x70, 0x43, 0xa4, 0x70, 0xac, 0xac, 0x40, 0xfa, + 0xa3, 0x70, 0xa7, 0xa8, 0x30, 0x45, 0x42, 0x38, 0x04, 0x90, 0x30, 0x9c, + 0xba, 0x28, 0xd7, 0xa0, 0x78, 0x1b, 0xae, 0x40, 0x24, 0x52, 0x28, 0xd0, + 0x45, 0x30, 0x4b, 0x49, 0x30, 0x36, 0x84, 0x68, 0x30, 0xb7, 0x20, 0x03, + 0x57, 0x38, 0x35, 0x40, 0x98, 0x55, 0xa9, 0x38, 0xef, 0xa1, 0x38, 0x21, + 0x43, 0xa8, 0x75, 0xa1, 0x40, 0x36, 0x85, 0x20, 0xf0, 0xa7, 0x38, 0x00, + 0x00, 0x03, 0x00, 0x12, 0x00, 0x13, 0x00, 0x38, 0x00, 0x11, +}; + +static const u8 data_segment_data_w2c_highlights_d83[] = { + 0x8d, 0x26, 0x0b, 0x03, 0x0f, 0x00, 0x04, 0x0d, 0x1d, 0x16, 0x0c, 0x00, + 0x18, 0x02, 0x0c, 0x03, 0x01, 0x03, 0x74, 0x12, 0x1f, 0x1e, 0x01, 0x00, + 0x64, 0x06, 0x11, 0x20, 0x5f, 0x04, 0x12, 0x40, 0x38, 0x81, 0x30, 0x36, + 0xaa, 0x18, 0x50, 0x84, 0x68, 0xd1, 0x56, 0x38, 0x70, 0x84, 0x28, 0x00, + 0x00, 0x00, 0x74, 0x84, 0x48, 0x97, 0x91, 0x50, 0x04, 0x5b, 0x20, 0x1c, + 0x83, 0x28, 0xd1, 0x2a, 0x58, 0x3d, 0x8d, 0x60, 0xe3, 0x43, 0x18, 0x00, + 0x60, 0x58, 0x11, 0x83, 0x50, 0x50, 0x6b, 0x80, 0xd1, 0x6b, 0x80, 0xc7, + 0x61, 0xa8, 0x83, 0x90, 0x38, 0xda, 0x64, 0xa0, 0x32, 0x74, 0x48, 0xac, + 0x80, 0x38, 0xbc, 0x62, 0xa8, 0xe5, 0x41, 0x38, 0x49, 0x8d, 0x78, 0x94, + 0x93, 0x40, 0x16, 0x65, 0x70, 0x08, 0x6c, 0x80, 0xb4, 0x6c, 0x80, 0x13, + 0x84, 0x60, 0x9a, 0x57, 0x28, 0x45, 0x8b, 0x58, 0x5c, 0x49, 0x28, 0x01, + 0x45, 0x40, 0x7e, 0x90, 0x30, 0x13, 0x84, 0x28, 0x9c, 0x5a, 0x28, 0x40, + 0x62, 0xc0, 0x11, 0x83, 0x80, 0x06, 0x93, 0x48, 0x7c, 0x95, 0x40, 0xc2, + 0x60, 0x60, 0xae, 0x90, 0x38, 0x70, 0x82, 0x38, 0x5b, 0x67, 0x98, 0x27, + 0x68, 0x90, 0x60, 0x40, 0x30, 0xb4, 0x72, 0x50, 0x92, 0x93, 0x20, 0xdf, + 0x41, 0x70, 0x9e, 0x90, 0x58, 0x6a, 0x84, 0x58, 0xc7, 0x61, 0x70, 0x2d, + 0x82, 0x98, 0xb4, 0xa0, 0x10, 0xd2, 0x91, 0x50, 0x20, 0x84, 0x88, 0x0e, + 0x9a, 0x28, 0x20, 0x8f, 0x68, 0x11, 0x95, 0x40, 0x2f, 0x8d, 0x78, 0x79, + 0x6d, 0x78, 0x01, 0x40, 0x10, 0xf0, 0x47, 0x38, 0x33, 0x82, 0x30, 0x0e, + 0x93, 0x28, 0x41, 0x68, 0x90, 0x61, 0x84, 0x70, 0x40, 0x8b, 0x80, 0xe2, + 0x91, 0x10, 0x41, 0x56, 0x30, 0xda, 0x64, 0x68, 0x6c, 0x67, 0x68, 0x50, + 0x85, 0x40, 0x25, 0x82, 0x48, 0x00, 0x60, 0xe8, 0x38, 0x8d, 0x30, 0x03, + 0x83, 0x28, 0xac, 0x80, 0x90, 0x6d, 0x25, 0x58, 0x61, 0x84, 0x40, 0xd9, + 0x98, 0x30, 0x00, 0x00, 0x00, 0x38, 0x83, 0x40, 0xab, 0x82, 0x88, 0x60, + 0x90, 0x58, 0x15, 0x56, 0x20, 0xe2, 0x91, 0x18, 0x12, 0x93, 0x30, 0x16, + 0x93, 0x30, 0x07, 0x83, 0x58, 0x8e, 0x93, 0x40, 0xdb, 0x91, 0x48, 0xa7, + 0x82, 0xa8, 0xf2, 0x9b, 0x10, 0x00, 0x00, 0x11, 0x01, 0x11, 0x00, 0x01, + 0x00, 0x3c, 0x00, 0x07, +}; + +static const u8 data_segment_data_w2c_highlights_d84[] = { + 0x04, 0x09, 0x00, 0x05, 0x03, 0x0d, 0xa6, 0x57, 0xd8, 0x86, 0x40, 0xa9, + 0x94, 0x18, 0x29, 0xda, 0x28, 0x63, 0x96, 0x30, 0x7a, 0x47, 0x10, 0xeb, + 0x23, 0x20, 0xa6, 0xae, 0x30, 0x5c, 0x89, 0x28, 0x28, 0xa0, 0x10, 0xae, + 0x2e, 0x20, 0x02, 0x21, 0x20, 0x08, 0x8b, 0x20, 0xee, 0xc6, 0x20, 0x30, + 0x20, 0x30, 0x31, 0x2c, 0x20, 0x4f, 0x21, 0x10, 0xb0, 0xfb, 0x18, 0x64, + 0x31, 0x18, 0x88, 0x81, 0x18, 0x72, 0x3a, 0x28, 0x83, 0x80, 0x48, 0x79, + 0x93, 0x30, 0x68, 0x8a, 0x20, 0x42, 0x61, 0x20, 0x0b, 0x86, 0x28, 0x00, + 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x00, 0x14, 0x00, 0x03, + 0x00, 0x07, +}; + +static const u8 data_segment_data_w2c_highlights_d85[] = { + 0x16, 0x04, 0x55, 0x14, 0x03, 0x0e, 0x07, 0x00, 0x13, 0x4b, 0xf5, 0x01, + 0x15, 0x01, 0x00, 0x00, 0x4b, 0x29, 0x30, 0x2f, 0x2c, 0x20, 0xe4, 0xf7, + 0x38, 0x3d, 0x37, 0x19, 0x39, 0xf2, 0x50, 0x36, 0xe5, 0x20, 0x64, 0x2f, + 0x58, 0xf2, 0x44, 0x20, 0xc4, 0xe9, 0x20, 0xb2, 0xe5, 0x28, 0xd1, 0x26, + 0x28, 0x45, 0x22, 0x38, 0xee, 0xf9, 0x30, 0xea, 0x20, 0x18, 0xb9, 0x32, + 0x28, 0xe0, 0xf3, 0x48, 0x5d, 0xe6, 0x20, 0x73, 0xf5, 0x20, 0xd0, 0x25, + 0x30, 0xcc, 0xba, 0x20, 0xac, 0xa7, 0x18, 0x4f, 0x21, 0x10, 0x02, 0x21, + 0x20, 0xf8, 0xf2, 0x28, 0xeb, 0x23, 0x20, 0x76, 0xf3, 0x18, 0xeb, 0xf7, + 0x38, 0xd1, 0xe4, 0x30, 0xf4, 0xf9, 0x30, 0x5f, 0x1a, 0x29, 0xab, 0x0e, + 0x21, 0xd1, 0xe0, 0x20, 0x42, 0x61, 0x20, 0x93, 0xa4, 0x48, 0xe8, 0xf9, + 0x30, 0x5c, 0xe6, 0x28, 0xbe, 0x8b, 0x38, 0x2f, 0x2c, 0x10, 0xa6, 0xce, + 0x30, 0x43, 0xf2, 0x50, 0x0f, 0x25, 0x30, 0x5c, 0xa9, 0x28, 0x42, 0xf4, + 0x38, 0x7c, 0x3b, 0x21, 0x01, 0xe0, 0x18, 0x4e, 0xa0, 0x30, 0x24, 0x32, + 0x28, 0xe9, 0xf9, 0x28, 0x33, 0xf6, 0x28, 0x86, 0x36, 0x40, 0xd9, 0xa1, + 0x18, 0x00, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x03, 0x13, + 0x00, 0x14, 0x00, 0x38, 0x00, 0x03, 0x00, 0x07, +}; + +static const u8 data_segment_data_w2c_highlights_d86[] = { + 0x01, 0x07, 0x01, 0x1d, 0x03, 0x0f, 0x00, 0x05, 0x3a, 0x54, 0x40, 0xb0, + 0x56, 0x40, 0xb4, 0x6b, 0x30, 0x93, 0x24, 0x48, 0x26, 0x25, 0x20, 0x51, + 0xa3, 0x20, 0x47, 0xd7, 0x28, 0xa2, 0x42, 0x28, 0xea, 0x70, 0x30, 0xa1, + 0x3a, 0x28, 0xe8, 0xc7, 0x30, 0x42, 0x21, 0x20, 0x5f, 0x9a, 0x28, 0xb2, + 0x47, 0x60, 0x46, 0x20, 0x10, 0x37, 0xd7, 0x38, 0xab, 0x8e, 0x20, 0xde, + 0x30, 0x30, 0x97, 0x6b, 0x50, 0xe5, 0x3a, 0x28, 0x33, 0x27, 0x50, 0x69, + 0xd0, 0x10, 0x54, 0x70, 0x48, 0x27, 0xc3, 0x18, 0x00, 0x00, 0x11, 0x01, + 0x11, 0x02, 0x11, 0x00, 0x03, 0x00, 0x07, 0x00, 0x38, +}; + +static const u8 data_segment_data_w2c_highlights_d87[] = { + 0x08, 0x5e, 0x69, 0x06, 0x07, 0x38, 0x0d, 0x24, 0x1a, 0x03, 0x03, 0x13, + 0x1f, 0x1b, 0x01, 0x29, 0x80, 0x30, 0xab, 0x2e, 0x21, 0x4f, 0x21, 0x10, + 0x93, 0x64, 0x48, 0x00, 0x00, 0x00, 0x68, 0x61, 0x28, 0x0f, 0x77, 0x29, + 0xd6, 0x37, 0x38, 0xac, 0x87, 0x18, 0x9c, 0x8a, 0x60, 0x45, 0x22, 0x38, + 0x28, 0xe0, 0x10, 0x02, 0x21, 0x20, 0x6f, 0x20, 0x18, 0xc4, 0x87, 0x48, + 0x30, 0x85, 0x30, 0x33, 0x87, 0x50, 0x32, 0x6e, 0x28, 0xe8, 0x8e, 0x48, + 0x25, 0x0c, 0x29, 0x30, 0x20, 0x30, 0x54, 0x61, 0x11, 0xcd, 0xec, 0x50, + 0x94, 0x1b, 0x21, 0x18, 0x0d, 0x21, 0x51, 0x43, 0x21, 0xde, 0x07, 0x29, + 0xc4, 0x09, 0x39, 0x60, 0x21, 0x10, 0x90, 0xc0, 0x18, 0x01, 0x00, 0x19, + 0x59, 0x2f, 0x28, 0x01, 0xe0, 0x10, 0x59, 0x2f, 0x30, 0xd1, 0x00, 0x21, + 0xc9, 0x6c, 0x21, 0xbe, 0xab, 0x38, 0x1b, 0x8e, 0x40, 0xe7, 0x89, 0x28, + 0x04, 0x10, 0x31, 0x4b, 0x29, 0x30, 0xeb, 0x95, 0x40, 0x38, 0x39, 0x28, + 0x5e, 0x8c, 0x38, 0x24, 0x32, 0x28, 0xcb, 0x99, 0x30, 0x86, 0x36, 0x40, + 0xeb, 0x23, 0x20, 0xa6, 0xae, 0x30, 0x77, 0x8b, 0x40, 0x26, 0x65, 0x20, + 0x19, 0x2b, 0x28, 0xd0, 0x25, 0x30, 0x1f, 0x0a, 0x21, 0x5f, 0x3a, 0x29, + 0xea, 0x20, 0x18, 0x7c, 0x41, 0x18, 0x5f, 0x36, 0x28, 0x63, 0x72, 0x30, + 0xd4, 0x87, 0x38, 0x00, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, + 0x00, 0x14, 0x00, 0x11, 0x00, 0x15, 0x00, 0x38, 0x00, 0x03, 0x00, 0x07, + 0x00, 0x3c, +}; + +static const u8 data_segment_data_w2c_highlights_d88[] = { + 0x2a, 0x00, 0x00, 0x01, 0x10, 0x04, 0x17, 0x69, 0x0a, 0x07, 0x00, 0x3e, + 0x27, 0x5c, 0x2f, 0x1e, 0x46, 0xa1, 0x10, 0xe3, 0xd8, 0x30, 0x38, 0xfb, + 0x20, 0xeb, 0xa3, 0x20, 0x52, 0xd9, 0x30, 0x9c, 0xae, 0x40, 0x29, 0x3a, + 0x28, 0x21, 0xd8, 0x38, 0xd8, 0xe2, 0x30, 0x71, 0xe8, 0x40, 0xf4, 0xad, + 0x28, 0x4b, 0x41, 0x48, 0x86, 0xfa, 0x28, 0x5c, 0xe9, 0x28, 0xe0, 0xfb, + 0x18, 0x46, 0x56, 0x30, 0xb2, 0xe5, 0x28, 0x60, 0xa1, 0x10, 0xb0, 0xaa, + 0x20, 0x7b, 0xe1, 0x10, 0x64, 0xf8, 0x20, 0x6b, 0xe8, 0x40, 0x4f, 0xa1, + 0x10, 0x06, 0x81, 0x28, 0xd6, 0x65, 0x20, 0x28, 0xc0, 0x10, 0x81, 0xfa, + 0x28, 0x98, 0xb8, 0x18, 0x00, 0x00, 0x00, 0x35, 0xf9, 0x30, 0x01, 0xa0, + 0x10, 0xf9, 0xd7, 0x38, 0x45, 0xc2, 0x38, 0x6c, 0xfb, 0x20, 0x10, 0xe6, + 0x48, 0x59, 0xe2, 0x20, 0xe3, 0xd8, 0x28, 0xa2, 0xf4, 0x20, 0x42, 0x61, + 0x20, 0x01, 0x65, 0x40, 0xc7, 0xe1, 0x30, 0x1b, 0xfb, 0x20, 0xb8, 0xca, + 0x20, 0x00, 0x00, 0x00, 0x88, 0x81, 0x18, 0x5f, 0xef, 0x28, 0x00, 0x00, + 0x00, 0x02, 0xa1, 0x20, 0x51, 0xe3, 0x20, 0xee, 0x26, 0x20, 0xbf, 0x68, + 0x38, 0xdc, 0x48, 0x30, 0x79, 0xd9, 0x30, 0xd0, 0xe5, 0x30, 0x5a, 0xee, + 0x20, 0x94, 0xc8, 0x30, 0x68, 0x61, 0x28, 0xa6, 0x4e, 0x30, 0xd9, 0xe1, + 0x18, 0x00, 0x00, 0x03, 0x00, 0x14, 0x00, 0x13, 0x00, 0x12, 0x01, 0x12, + 0x00, 0x11, 0x00, 0x0e, +}; + +static const u8 data_segment_data_w2c_highlights_d89[] = { + 0x01, 0x57, 0x03, 0x0d, 0x06, 0x04, 0x2e, 0x04, 0xa3, 0xc1, 0x07, 0x01, + 0x0c, 0x0f, 0x13, 0x02, 0x93, 0x64, 0x48, 0x4f, 0xcc, 0x30, 0x72, 0xd2, + 0x50, 0xad, 0xc1, 0x30, 0xeb, 0x43, 0x20, 0x00, 0x00, 0x00, 0xea, 0x40, + 0x18, 0x45, 0x42, 0x38, 0x9c, 0xc2, 0x48, 0x01, 0xa0, 0x18, 0x00, 0x00, + 0x00, 0x2f, 0xd8, 0x38, 0x00, 0x00, 0x00, 0x60, 0xc8, 0x30, 0x02, 0x41, + 0x20, 0x6e, 0x81, 0x48, 0xe1, 0xc4, 0x30, 0x5f, 0x3a, 0x28, 0xc9, 0xec, + 0x20, 0x77, 0xd6, 0x28, 0x60, 0x41, 0x10, 0x4e, 0x60, 0x30, 0x5c, 0xc9, + 0x28, 0xf0, 0xcb, 0x30, 0xc8, 0xc5, 0x48, 0x86, 0x56, 0x40, 0x19, 0x4b, + 0x28, 0x60, 0xc0, 0x80, 0x4f, 0x41, 0x10, 0xab, 0x2e, 0x20, 0xd0, 0xc3, + 0x68, 0xd1, 0xa4, 0x30, 0x70, 0xa6, 0x68, 0x85, 0xb9, 0x30, 0x12, 0xb9, + 0x28, 0x29, 0xc0, 0x30, 0x26, 0x6a, 0x38, 0xe8, 0xcc, 0x40, 0x94, 0xbb, + 0x20, 0xde, 0xa7, 0x28, 0x36, 0xa5, 0x20, 0xad, 0xa1, 0x38, 0xfd, 0xa1, + 0x30, 0x75, 0xc1, 0x40, 0x3a, 0xc4, 0x20, 0xc4, 0xa9, 0x20, 0x55, 0x69, + 0x38, 0xea, 0xda, 0x28, 0x00, 0x00, 0x00, 0x87, 0xca, 0x60, 0x04, 0xb0, + 0x30, 0x1b, 0xce, 0x40, 0xc1, 0x77, 0x38, 0xa2, 0xc8, 0x58, 0xe5, 0xc1, + 0x38, 0x0c, 0xbb, 0x20, 0x24, 0x52, 0x28, 0x4b, 0x49, 0x30, 0xd0, 0x45, + 0x30, 0xde, 0xa7, 0x48, 0xa7, 0xc8, 0x30, 0x03, 0x57, 0x38, 0x01, 0xc0, + 0x10, 0x68, 0x61, 0x28, 0xe3, 0xc3, 0x18, 0x9c, 0xda, 0x28, 0x7f, 0xc3, + 0x78, 0x00, 0x00, 0x03, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, 0x38, + 0x00, 0x11, 0x00, 0x3c, +}; + +static const u8 data_segment_data_w2c_highlights_d90[] = { + 0x03, 0x00, 0x2a, 0x35, 0x12, 0x01, 0x42, 0x12, 0x19, 0x00, 0x00, 0x16, + 0x81, 0x4c, 0x9e, 0x73, 0x29, 0xa0, 0x30, 0xde, 0xc7, 0x28, 0x24, 0x32, + 0x28, 0x1f, 0xca, 0x20, 0x68, 0x41, 0x28, 0xd1, 0xc0, 0x20, 0x04, 0xd0, + 0x30, 0x9c, 0xaa, 0x60, 0x60, 0x21, 0x10, 0x38, 0x39, 0x28, 0x86, 0x36, + 0x40, 0x6f, 0xae, 0x30, 0x0f, 0x37, 0x29, 0xe8, 0xae, 0x48, 0x5c, 0xa9, + 0x28, 0x4b, 0x29, 0x30, 0x6f, 0x20, 0x18, 0x4f, 0x21, 0x10, 0x26, 0x45, + 0x20, 0x02, 0x21, 0x20, 0xeb, 0x23, 0x20, 0xcb, 0xb9, 0x30, 0x59, 0xaf, + 0x30, 0x77, 0xab, 0x40, 0x5f, 0x36, 0x28, 0x1f, 0xac, 0x38, 0x59, 0x2f, + 0x28, 0x90, 0x40, 0x19, 0x93, 0x44, 0x48, 0x30, 0x20, 0x30, 0x00, 0x00, + 0x00, 0xc9, 0x2c, 0x21, 0x5f, 0xfa, 0x28, 0xe7, 0xa9, 0x28, 0xeb, 0xb5, + 0x40, 0x33, 0xa7, 0x50, 0xc4, 0xa7, 0x48, 0x63, 0x72, 0x31, 0xab, 0xee, + 0x20, 0x2f, 0x2c, 0x20, 0xcd, 0x4c, 0x51, 0x01, 0xc0, 0x18, 0x1b, 0xae, + 0x40, 0xd4, 0xa7, 0x38, 0xbe, 0x6b, 0x38, 0xc4, 0xc9, 0x38, 0xd6, 0x37, + 0x38, 0x00, 0x00, 0x00, 0x5e, 0xac, 0x38, 0x45, 0x22, 0x38, 0x51, 0x03, + 0x21, 0x18, 0xcd, 0x20, 0x00, 0x00, 0x00, 0x25, 0xcc, 0x28, 0xa6, 0x8e, + 0x30, 0xd0, 0x25, 0x30, 0x94, 0xdb, 0x20, 0x19, 0x2b, 0x28, 0xea, 0x20, + 0x18, 0x30, 0xa5, 0x30, 0xac, 0xa7, 0x18, 0x00, 0x00, 0x12, 0x00, 0x13, + 0x01, 0x13, 0x02, 0x14, 0x00, 0x13, 0x00, 0x38, 0x00, 0x03, 0x00, 0x07, + 0x00, 0x3c, 0x00, 0x15, 0x00, 0x13, 0x05, +}; + +static const u8 data_segment_data_w2c_highlights_d91[] = { + 0x0c, 0x00, 0x00, 0x1e, 0x00, 0x02, 0x33, 0x00, 0x00, 0x00, 0x05, 0x03, + 0x2b, 0x30, 0x00, 0x05, 0xa1, 0x3b, 0x19, 0x4f, 0x21, 0x10, 0x4e, 0x60, + 0x30, 0x10, 0x26, 0x29, 0xf2, 0x44, 0x40, 0xdc, 0x21, 0x11, 0xa6, 0xce, + 0x30, 0x86, 0x36, 0x40, 0x6c, 0x2c, 0x30, 0x86, 0xb4, 0x48, 0x5c, 0xa9, + 0x28, 0x01, 0xe0, 0x10, 0xea, 0x20, 0x18, 0x4f, 0xcc, 0x30, 0x83, 0x20, + 0x11, 0x1e, 0xe5, 0x18, 0xcb, 0xd9, 0x30, 0x6f, 0x20, 0x18, 0xdc, 0x23, + 0x18, 0x13, 0x38, 0x39, 0x19, 0x2b, 0x28, 0xad, 0x39, 0x28, 0x45, 0xb3, + 0x28, 0xd9, 0xa9, 0x38, 0x60, 0x21, 0x10, 0x7c, 0x38, 0x28, 0x42, 0x61, + 0x20, 0x5f, 0x1a, 0x29, 0x71, 0xd3, 0x28, 0x88, 0x21, 0x18, 0x02, 0x21, + 0x20, 0x00, 0x00, 0x00, 0xab, 0x0e, 0x21, 0xc6, 0x2e, 0x39, 0x5e, 0xa2, + 0x28, 0xd6, 0x37, 0x38, 0xdc, 0x88, 0x30, 0x38, 0x39, 0x28, 0xab, 0x3b, + 0x19, 0xd0, 0x25, 0x30, 0x0b, 0x46, 0x28, 0xeb, 0xb5, 0x40, 0x00, 0x00, + 0x00, 0x24, 0x32, 0x28, 0x00, 0x00, 0x00, 0x15, 0x91, 0x50, 0x60, 0xa0, + 0x30, 0x00, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x03, 0x13, + 0x00, 0x14, 0x00, 0x15, 0x00, 0x03, 0x00, 0x07, +}; + +static const u8 data_segment_data_w2c_highlights_d92[] = { + 0x15, 0x00, 0x36, 0x12, 0x20, 0x00, 0x0b, 0x14, 0x65, 0x54, 0x7d, 0x00, + 0x00, 0x02, 0x15, 0x22, 0x00, 0x00, 0x00, 0xb9, 0xf5, 0x40, 0x5f, 0x3a, + 0x29, 0xc9, 0x6c, 0x21, 0xa2, 0x11, 0x31, 0x98, 0x1b, 0x19, 0xa1, 0xe6, + 0x38, 0xc0, 0x90, 0x58, 0xac, 0x87, 0x18, 0xd1, 0xe0, 0x10, 0x74, 0x65, + 0x48, 0x86, 0x36, 0x40, 0x8c, 0x81, 0x18, 0x2d, 0x1b, 0x21, 0xcd, 0xf3, + 0x48, 0x37, 0xf1, 0x38, 0x5c, 0xe9, 0x28, 0x25, 0x1a, 0x21, 0x00, 0x00, + 0x00, 0xc3, 0x83, 0x20, 0x83, 0x15, 0x39, 0xb6, 0x29, 0x20, 0x38, 0x39, + 0x28, 0x31, 0x1b, 0x21, 0x00, 0x00, 0x00, 0xcb, 0xf9, 0x30, 0xea, 0x20, + 0x18, 0x97, 0xfa, 0x28, 0xa6, 0xae, 0x30, 0x00, 0x00, 0x00, 0xd6, 0xe5, + 0x20, 0x27, 0x03, 0x19, 0x60, 0xe8, 0x30, 0x19, 0x2b, 0x28, 0x6f, 0x20, + 0x18, 0x37, 0x17, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xe9, + 0x28, 0xbf, 0xe3, 0x40, 0xbb, 0xc1, 0x10, 0xbe, 0xab, 0x38, 0x28, 0xc0, + 0x10, 0xe8, 0x07, 0x31, 0x0f, 0x77, 0x29, 0x4f, 0x21, 0x10, 0x01, 0xc0, + 0x10, 0x44, 0xee, 0x40, 0x93, 0x64, 0x48, 0xc8, 0xf6, 0x40, 0xac, 0xe7, + 0x30, 0xe8, 0xee, 0x48, 0x68, 0x61, 0x28, 0x60, 0x21, 0x10, 0xd6, 0x37, + 0x38, 0xd4, 0xe7, 0x38, 0xe3, 0xf8, 0x28, 0xab, 0x2e, 0x21, 0x24, 0x32, + 0x28, 0x51, 0x43, 0x21, 0xc3, 0x6a, 0x30, 0xe3, 0xe3, 0x18, 0x7b, 0xee, + 0x20, 0x47, 0x17, 0x29, 0xeb, 0xf5, 0x40, 0x6f, 0xee, 0x30, 0x26, 0x85, + 0x20, 0x02, 0x21, 0x20, 0xd0, 0x25, 0x30, 0x38, 0x0a, 0x21, 0xf2, 0x44, + 0x18, 0x59, 0x2f, 0x28, 0x00, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, + 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x11, 0x04, 0x38, 0x00, 0x03, 0x00, + 0x07, 0x00, 0x3c, +}; + +static const u8 data_segment_data_w2c_highlights_d93[] = { + 0x51, 0x00, 0x08, 0x19, 0x75, 0x04, 0x1c, 0x08, 0x03, 0x03, 0x11, 0x01, + 0x00, 0x2a, 0x0c, 0x16, 0x0b, 0x03, 0x00, 0x03, 0x17, 0x00, 0x01, 0x04, + 0x0b, 0x00, 0x00, 0x06, 0x00, 0x04, 0x96, 0x26, 0x50, 0x18, 0x9b, 0x20, + 0x82, 0x51, 0x48, 0x8d, 0xe9, 0x60, 0xa7, 0x6b, 0x31, 0x35, 0x7b, 0x20, + 0x7b, 0x6c, 0x28, 0x7f, 0x66, 0x28, 0xf6, 0xe7, 0x70, 0x8f, 0xe9, 0x50, + 0xc8, 0x17, 0x3a, 0x50, 0x27, 0x60, 0xa1, 0x5a, 0x28, 0x2c, 0x23, 0x38, + 0xe0, 0x4b, 0x60, 0x51, 0x6a, 0x29, 0x53, 0x27, 0x48, 0x05, 0x42, 0x38, + 0x99, 0xc8, 0x51, 0x3c, 0x69, 0x38, 0xec, 0x9b, 0x18, 0x7d, 0x74, 0x48, + 0x2d, 0xa7, 0x41, 0x00, 0x6e, 0x41, 0x7d, 0x40, 0x21, 0xdc, 0x23, 0x19, + 0xef, 0xe0, 0x98, 0x51, 0x6f, 0x28, 0x22, 0x51, 0x58, 0x8b, 0xf9, 0x31, + 0xd9, 0xa7, 0x30, 0x97, 0x4d, 0x78, 0xae, 0x6a, 0x21, 0xb3, 0x4e, 0x70, + 0xa7, 0x6a, 0x59, 0x72, 0x6a, 0x39, 0xdd, 0x77, 0x39, 0xa6, 0x2c, 0x38, + 0xad, 0x39, 0x29, 0x1d, 0x67, 0x41, 0xc0, 0x19, 0x21, 0xc6, 0x52, 0x50, + 0x09, 0xe1, 0x80, 0x88, 0xe1, 0x18, 0x7f, 0x66, 0x20, 0x90, 0x6b, 0x28, + 0xb4, 0x77, 0x38, 0x1a, 0x38, 0x20, 0x93, 0x26, 0x68, 0x01, 0x39, 0x30, + 0x7b, 0x66, 0x40, 0xad, 0x29, 0x28, 0x86, 0x42, 0x70, 0x40, 0x69, 0x18, + 0x9e, 0x77, 0x38, 0x7c, 0xe1, 0x18, 0x66, 0x7b, 0x20, 0x57, 0x68, 0x41, + 0x7d, 0x80, 0x41, 0xcc, 0x71, 0x30, 0x60, 0x41, 0x68, 0xd0, 0xd0, 0x20, + 0xaa, 0xc9, 0x30, 0x0b, 0xe1, 0x70, 0x00, 0x00, 0x36, 0x01, 0x2c, 0x02, + 0x06, 0x00, 0x41, 0x00, 0x0d, 0x00, 0x0c, 0x00, 0x0e, 0x00, 0x00, 0x03, + 0x37, 0x04, 0x00, 0x05, 0x00, 0x06, 0x35, 0x07, 0x35, 0x08, 0x35, 0x09, + 0x35, 0x0a, 0x04, 0x0b, +}; + +static const u8 data_segment_data_w2c_highlights_d94[] = { + 0x31, 0x03, 0x09, 0x00, 0x70, 0x00, 0x24, 0x2c, 0x46, 0x0e, 0x00, 0x0b, + 0x09, 0x0d, 0x01, 0x0d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x04, 0x12, 0x00, + 0x14, 0x06, 0x7c, 0x02, 0x23, 0x07, 0x0d, 0x06, 0x09, 0x85, 0x40, 0x51, + 0x0f, 0x31, 0xef, 0x81, 0x38, 0xb2, 0x85, 0x28, 0x0e, 0x8f, 0x70, 0x79, + 0x92, 0x20, 0xbb, 0x6b, 0x50, 0x5f, 0xba, 0x28, 0xeb, 0x83, 0x20, 0xab, + 0xae, 0x20, 0x68, 0x32, 0x40, 0x44, 0x91, 0x50, 0x66, 0x85, 0x28, 0x2f, + 0x8c, 0x10, 0x91, 0x98, 0x30, 0xae, 0xc6, 0x98, 0x7a, 0x87, 0x10, 0x4f, + 0x89, 0x50, 0x3d, 0xb7, 0x18, 0x4f, 0x81, 0x10, 0xf6, 0x87, 0x38, 0xdf, + 0x8d, 0x68, 0xa3, 0x92, 0x20, 0x26, 0x2b, 0x50, 0xf2, 0x84, 0x40, 0x60, + 0x81, 0x10, 0xb0, 0x8a, 0x18, 0x7c, 0x81, 0x18, 0x4f, 0x8c, 0x30, 0xd6, + 0x9a, 0x28, 0x59, 0x8f, 0x28, 0xad, 0x99, 0x28, 0x9a, 0xe3, 0x30, 0xa6, + 0x8e, 0x30, 0x88, 0xe1, 0x18, 0xe8, 0x80, 0x10, 0xe1, 0x8e, 0x70, 0x00, + 0x00, 0x00, 0x0a, 0x75, 0x38, 0x88, 0x81, 0x50, 0xdb, 0x9a, 0x28, 0x06, + 0x80, 0x10, 0x30, 0x90, 0x60, 0x9b, 0x94, 0x38, 0xee, 0x92, 0x50, 0x01, + 0x88, 0x18, 0x8e, 0x38, 0x28, 0xb7, 0x95, 0x20, 0x0f, 0x1b, 0x21, 0xc4, + 0x46, 0x60, 0x38, 0x99, 0x28, 0xff, 0x8c, 0x20, 0x04, 0x26, 0x60, 0x0c, + 0x85, 0x28, 0x04, 0x6f, 0x48, 0xff, 0x8c, 0x70, 0x60, 0x23, 0x30, 0x7c, + 0x98, 0x28, 0x74, 0x2e, 0x40, 0x08, 0x85, 0x48, 0xa1, 0x85, 0x98, 0x09, + 0x97, 0x38, 0x63, 0x89, 0x38, 0xaf, 0x97, 0x20, 0xb6, 0x89, 0x20, 0xf4, + 0x89, 0x58, 0x30, 0x80, 0x30, 0x60, 0x23, 0x68, 0xf0, 0x2e, 0x48, 0xb1, + 0x6f, 0x40, 0xce, 0x56, 0x30, 0xa9, 0x6f, 0x40, 0x74, 0x80, 0x58, 0xd0, + 0x85, 0x30, 0xf8, 0x4d, 0x48, 0x96, 0xcf, 0x30, 0x4c, 0xc0, 0x90, 0xb1, + 0x89, 0x48, 0xe3, 0x99, 0x28, 0x64, 0x91, 0x58, 0x6e, 0x8f, 0x60, 0x72, + 0x83, 0x70, 0x67, 0x83, 0x60, 0x51, 0x98, 0x30, 0x7f, 0x6a, 0x58, 0x59, + 0x49, 0x58, 0x00, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x03, 0x11, 0x00, + 0x07, 0x00, 0x11, 0x04, 0x11, 0x08, 0x11, 0x0c, +}; + +static const u8 data_segment_data_w2c_highlights_d95[] = { + 0x27, 0x33, 0x02, 0x00, 0x02, 0x00, 0x00, 0x1b, 0xdc, 0x83, 0x18, 0x3d, + 0x57, 0x18, 0xa2, 0x98, 0x28, 0x02, 0x81, 0x20, 0x01, 0x60, 0x10, 0x5e, + 0xa2, 0x28, 0xf2, 0xc4, 0x40, 0x16, 0x85, 0x30, 0x06, 0x60, 0x10, 0xb0, + 0x8a, 0x20, 0x19, 0x8b, 0x28, 0x5f, 0x3a, 0x28, 0x24, 0x92, 0x28, 0x4f, + 0x81, 0x10, 0xf9, 0x64, 0x18, 0x01, 0x68, 0x18, 0x60, 0x81, 0x10, 0xea, + 0x80, 0x18, 0xd0, 0xe5, 0x30, 0xab, 0x2e, 0x20, 0x6c, 0x8c, 0x30, 0x2f, + 0xec, 0x20, 0x00, 0x00, 0x03, 0x00, 0x07, 0x00, 0x15, 0x00, 0x12, 0x00, + 0x13, 0x00, 0x13, 0x01, 0x11, +}; + +static const u8 data_segment_data_w2c_highlights_d96[] = { + 0x18, 0x13, 0x19, 0x01, 0x00, 0x06, 0x01, 0x0e, 0x09, 0x04, 0x05, 0x03, + 0x01, 0x05, 0x10, 0x09, 0x11, 0xb6, 0x28, 0x4f, 0xa1, 0x10, 0x61, 0xb3, + 0x48, 0xbd, 0xb3, 0x30, 0x00, 0x00, 0x00, 0xc3, 0xac, 0x40, 0x94, 0xb7, + 0x38, 0x04, 0x55, 0x40, 0x06, 0xa8, 0x20, 0x74, 0x95, 0x40, 0xc7, 0xa1, + 0x30, 0xeb, 0x4d, 0x40, 0xb2, 0xa5, 0x28, 0x92, 0x3a, 0x28, 0x4f, 0x8c, + 0x30, 0xa6, 0x2f, 0x30, 0x71, 0xab, 0x40, 0x8c, 0xa1, 0x28, 0x08, 0x9b, + 0x28, 0x0e, 0xb2, 0x50, 0xc8, 0x96, 0x40, 0xd8, 0xb6, 0x40, 0x23, 0xad, + 0x28, 0x6e, 0xb2, 0x28, 0x01, 0xa2, 0x30, 0x84, 0xbb, 0x20, 0x60, 0x63, + 0x30, 0x0d, 0xa2, 0x18, 0x06, 0xa0, 0x10, 0x6b, 0xb2, 0x28, 0xc0, 0xa9, + 0x20, 0x26, 0xa6, 0x38, 0x1a, 0xb2, 0x50, 0x88, 0xa1, 0x18, 0x02, 0x21, + 0x20, 0xbb, 0xba, 0x20, 0x4b, 0x30, 0x28, 0x1c, 0xb7, 0x40, 0x05, 0x42, + 0x38, 0x10, 0x86, 0x40, 0x30, 0xb7, 0x38, 0xa3, 0x2f, 0x28, 0x64, 0xb3, + 0x30, 0xbb, 0xa9, 0x48, 0x78, 0x3b, 0x20, 0x6d, 0xab, 0x40, 0x58, 0xb9, + 0x30, 0x60, 0xa2, 0x20, 0x03, 0xb6, 0x40, 0x01, 0xa8, 0x18, 0xd0, 0xa7, + 0x20, 0xb1, 0xa9, 0x20, 0xd4, 0x87, 0x38, +}; + +static const u8 data_segment_data_w2c_highlights_d97[] = { + 0x3b, 0x23, 0x70, 0x05, 0x02, 0x09, 0x6f, 0x02, 0xa1, 0xfb, 0x18, 0xab, + 0xfb, 0x18, 0xe3, 0xf8, 0x18, 0xac, 0x6f, 0x40, 0xa6, 0xae, 0x30, 0x08, + 0x87, 0x50, 0x02, 0x21, 0x20, 0x00, 0x00, 0x00, 0xad, 0x8d, 0x50, 0xeb, + 0x23, 0x20, 0x6b, 0xf5, 0x18, 0x4b, 0x29, 0x30, 0x9c, 0x32, 0x48, 0x82, + 0xe6, 0x18, 0x5f, 0xda, 0x28, 0x00, 0x00, 0x00, 0xab, 0xce, 0x20, 0x38, + 0x39, 0x28, 0x9a, 0x39, 0x30, 0x6c, 0x2c, 0x30, 0x24, 0x32, 0x28, 0x6f, + 0x20, 0x18, 0xad, 0xfb, 0x18, 0x4f, 0x21, 0x10, 0xdc, 0x23, 0x18, 0xea, + 0x20, 0x18, 0x26, 0x85, 0x58, 0xf2, 0x44, 0x40, 0x96, 0x38, 0x20, 0xe2, + 0x90, 0x48, 0x19, 0x2b, 0x28, 0xd0, 0x25, 0x30, 0x3a, 0x8e, 0x30, 0xdc, + 0xe1, 0x10, 0x86, 0x36, 0x40, 0xa7, 0x81, 0x38, 0x60, 0x80, 0x30, 0x00, + 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x00, 0x14, 0x00, 0x03, + 0x00, 0x07, +}; + +static const u8 data_segment_data_w2c_highlights_d98[] = { + 0x01, 0x03, 0x1a, 0x9c, 0x00, 0x00, 0x31, 0x00, 0x1b, 0x19, 0x56, 0x16, + 0x8a, 0x29, 0x3f, 0x05, 0x2a, 0x06, 0x3d, 0x00, 0x00, 0x01, 0x25, 0x04, + 0x0a, 0x06, 0x05, 0x03, 0x01, 0x03, 0x16, 0x06, 0x29, 0xc0, 0x30, 0x46, + 0xe0, 0x10, 0xda, 0x33, 0x31, 0x4f, 0x81, 0x10, 0x28, 0xa0, 0x10, 0x05, + 0x62, 0x38, 0x1f, 0x4a, 0x21, 0x71, 0x48, 0x19, 0x00, 0x00, 0x00, 0xeb, + 0x83, 0x20, 0xd1, 0x44, 0x31, 0xab, 0xee, 0x20, 0xeb, 0x57, 0x39, 0x00, + 0x00, 0x00, 0x60, 0xc1, 0x10, 0x36, 0x45, 0x21, 0xcf, 0xd7, 0x38, 0x36, + 0xce, 0x28, 0x42, 0x41, 0x20, 0xd1, 0x40, 0x21, 0x01, 0xa0, 0x10, 0xe3, + 0xc3, 0x18, 0x58, 0xd3, 0x20, 0xc2, 0x48, 0x29, 0x88, 0x58, 0x39, 0x3d, + 0x17, 0x19, 0x66, 0xc5, 0x28, 0x5f, 0x96, 0x28, 0xea, 0x80, 0x18, 0xd6, + 0x97, 0x38, 0xdd, 0xb9, 0x18, 0xc3, 0x41, 0x19, 0x85, 0x29, 0x48, 0x5d, + 0x46, 0x21, 0xa4, 0x4d, 0x39, 0x7e, 0xba, 0x18, 0xf4, 0x59, 0x31, 0x17, + 0xbb, 0x18, 0xee, 0x59, 0x31, 0x5a, 0xc0, 0x20, 0xd9, 0x68, 0x20, 0xf9, + 0xa4, 0x18, 0x26, 0xc5, 0x20, 0xd1, 0xc6, 0x28, 0xac, 0x47, 0x18, 0xdc, + 0xa8, 0x18, 0x8f, 0x34, 0x20, 0x05, 0x62, 0x19, 0xbb, 0xa1, 0x10, 0x06, + 0xa0, 0x10, 0x27, 0xa0, 0x20, 0x5f, 0xfa, 0x28, 0xc4, 0x49, 0x21, 0xac, + 0x47, 0x39, 0x86, 0x96, 0x40, 0x08, 0x4b, 0x21, 0xf8, 0x52, 0x29, 0x19, + 0xa7, 0x18, 0x33, 0x56, 0x29, 0x94, 0x5b, 0x21, 0xbc, 0xdb, 0x18, 0xde, + 0x47, 0x29, 0xe4, 0x57, 0x39, 0xfb, 0x67, 0x19, 0x71, 0xd3, 0x28, 0x72, + 0x40, 0x39, 0x88, 0x41, 0x18, 0x40, 0xc9, 0x18, 0x02, 0x81, 0x20, 0xe9, + 0x59, 0x29, 0x01, 0x40, 0x19, 0xc3, 0xc7, 0x18, 0x5c, 0x46, 0x29, 0xc2, + 0x48, 0x41, 0xc3, 0xca, 0x30, 0x6f, 0x80, 0x18, 0xd5, 0x40, 0x29, 0xb6, + 0x89, 0x20, 0x49, 0x90, 0x20, 0xae, 0x6e, 0x21, 0x30, 0x60, 0x31, 0xf3, + 0x85, 0x30, 0xbb, 0x23, 0x40, 0x3a, 0x2a, 0x40, 0xc0, 0xe1, 0x18, 0xb8, + 0xda, 0x28, 0xb9, 0x52, 0x29, 0x0b, 0xb4, 0x28, 0x24, 0x92, 0x28, 0xd0, + 0x85, 0x30, 0x0b, 0x26, 0x28, 0x00, 0x00, 0x00, 0x33, 0x6c, 0x41, 0xa7, + 0x21, 0x30, 0x7b, 0x4e, 0x49, 0x03, 0xd7, 0x38, 0x5c, 0x49, 0x28, 0xe8, + 0x59, 0x31, 0x01, 0xa8, 0x18, 0x19, 0x8b, 0x28, 0xf2, 0x24, 0x20, 0xf4, + 0xd3, 0x40, 0xa6, 0x6e, 0x30, 0x46, 0xa1, 0x10, 0xae, 0xba, 0x28, 0x00, + 0x00, 0x13, 0x01, 0x13, 0x00, 0x14, 0x02, 0x12, 0x00, 0x15, 0x00, 0x11, + 0x00, 0x03, 0x00, 0x07, 0x00, 0x3c, 0x00, 0x38, 0x00, 0x0e, +}; + +static const u8 data_segment_data_w2c_highlights_d99[] = { + 0x21, 0x43, 0x03, 0x60, 0xe6, 0xe7, 0x40, 0x97, 0xec, 0x50, 0x00, 0x00, + 0x00, 0x5f, 0x7a, 0x28, 0xd9, 0xe1, 0x18, 0x02, 0x41, 0x20, 0x51, 0x83, + 0x20, 0x00, 0x00, 0x00, 0x88, 0x21, 0x18, 0x0f, 0x22, 0x18, 0xa1, 0x25, + 0x20, 0x00, 0x00, 0x00, 0x30, 0x20, 0x30, 0x59, 0xef, 0x28, 0x92, 0xea, + 0x58, 0x01, 0x20, 0x10, 0xc0, 0xf3, 0x28, 0x7f, 0xf9, 0x30, 0x0e, 0x34, + 0x38, 0x4f, 0x41, 0x10, 0xab, 0x6e, 0x20, 0xa6, 0xee, 0x30, 0x4c, 0xfa, + 0x28, 0x06, 0xa0, 0x10, 0x2b, 0xd6, 0x40, 0x05, 0xf2, 0x50, 0xd3, 0xf5, + 0x40, 0x3d, 0xe6, 0x60, 0xb0, 0x4a, 0x20, 0x00, 0x00, 0x11, 0x00, 0x12, + 0x00, 0x03, 0x00, 0x07, 0x00, 0x15, 0x00, 0x17, 0x00, 0x0e, +}; + +static const u8 data_segment_data_w2c_highlights_d100[] = { + 0x5a, 0x03, 0x01, 0x31, 0x00, 0x06, 0x02, 0x00, 0x00, 0x57, 0x00, 0x00, + 0x10, 0x07, 0x00, 0x0e, 0x09, 0x03, 0x04, 0x1d, 0x11, 0x01, 0x3b, 0x05, + 0x18, 0x10, 0x0f, 0x03, 0x09, 0x01, 0x06, 0x06, 0xdc, 0x23, 0x18, 0xd6, + 0x37, 0x38, 0x23, 0x5a, 0x18, 0x9b, 0x5b, 0x18, 0xa6, 0x2e, 0x30, 0x6a, + 0xa9, 0x88, 0xfb, 0xd8, 0x30, 0x86, 0x51, 0x28, 0x9c, 0x2a, 0x60, 0xc0, + 0x36, 0x40, 0xc3, 0xcb, 0x30, 0x01, 0x45, 0x60, 0xbe, 0x2b, 0x38, 0x0a, + 0x2e, 0x40, 0xe0, 0xc5, 0x88, 0xe3, 0xa3, 0x18, 0x50, 0x9b, 0x20, 0x7b, + 0x41, 0x10, 0x1a, 0xb9, 0x30, 0xf7, 0xd8, 0x20, 0x59, 0x2f, 0x28, 0x51, + 0xa3, 0x80, 0x9c, 0xba, 0x28, 0xef, 0xb1, 0x40, 0x29, 0x5b, 0x20, 0x6f, + 0x20, 0x18, 0xec, 0x36, 0x40, 0x0b, 0x28, 0x38, 0xcb, 0x39, 0x30, 0xf5, + 0xb8, 0x30, 0xe9, 0xc5, 0x30, 0x5f, 0x2b, 0x78, 0x8a, 0x2c, 0x30, 0xdd, + 0xd5, 0x30, 0xed, 0x83, 0x20, 0xcc, 0xb5, 0x40, 0x3c, 0xb3, 0x38, 0x32, + 0xb5, 0x40, 0x09, 0xa9, 0x40, 0x01, 0xa0, 0x10, 0x83, 0x20, 0x70, 0x09, + 0xa9, 0x88, 0x06, 0xab, 0x78, 0x0f, 0x25, 0x40, 0x38, 0x39, 0x28, 0x52, + 0xc6, 0x48, 0x0f, 0x97, 0x28, 0xac, 0xcb, 0x48, 0xcc, 0xca, 0x30, 0x33, + 0x62, 0x10, 0xa3, 0x33, 0x48, 0xb0, 0x7b, 0x18, 0x1e, 0x64, 0x18, 0x8d, + 0xa3, 0x78, 0x82, 0x2a, 0x40, 0x55, 0x2c, 0x50, 0xac, 0xcc, 0x40, 0x3d, + 0x77, 0x18, 0xd4, 0x27, 0x38, 0xdb, 0xb5, 0x40, 0xe8, 0x2e, 0x48, 0xde, + 0xa5, 0x98, 0xed, 0xb1, 0x50, 0xb0, 0xb5, 0x40, 0x27, 0xb5, 0x40, 0x55, + 0xc6, 0x30, 0xda, 0xc5, 0x20, 0x8d, 0xb7, 0x38, 0x93, 0x21, 0x98, 0x04, + 0x2f, 0x20, 0x5b, 0xba, 0x28, 0x93, 0x24, 0x48, 0x3a, 0xb3, 0x48, 0x8f, + 0xa0, 0x30, 0x68, 0x21, 0x28, 0x2a, 0xb3, 0x48, 0x00, 0x00, 0x11, 0x01, + 0x38, 0x02, 0x07, 0x03, 0x3c, 0x04, 0x11, 0x05, 0x11, 0x06, +}; + +static const u8 data_segment_data_w2c_highlights_d101[] = { + 0x01, 0x06, 0x04, 0x00, 0x0c, 0x04, 0x5d, 0x0a, 0x0b, 0x00, 0x0a, 0x1c, + 0x04, 0x01, 0x1a, 0x10, 0x06, 0x18, 0x04, 0x09, 0x00, 0x0a, 0x61, 0x69, + 0x20, 0x00, 0x1b, 0x29, 0x00, 0x0b, 0x1f, 0x35, 0x15, 0x01, 0x00, 0x02, + 0x27, 0x0f, 0x04, 0x00, 0x03, 0x07, 0x39, 0x01, 0x0d, 0x0b, 0x0b, 0x01, + 0x04, 0x14, 0x02, 0x00, 0x05, 0x58, 0x03, 0x01, 0x02, 0x00, 0x09, 0x0b, + 0x03, 0x11, 0xfb, 0x85, 0x49, 0x00, 0xb8, 0x38, 0xc0, 0x34, 0x28, 0x9b, + 0xa4, 0x60, 0x6f, 0x20, 0x18, 0x72, 0x60, 0x39, 0xc0, 0x50, 0x58, 0xe7, + 0xa9, 0x28, 0xdb, 0x72, 0x49, 0xc3, 0x6c, 0x21, 0x93, 0x61, 0x21, 0x3d, + 0x37, 0x19, 0x5b, 0x81, 0x31, 0xea, 0x20, 0x18, 0xee, 0x8a, 0x49, 0xe3, + 0xa3, 0x18, 0xc8, 0x6f, 0x69, 0xa2, 0x38, 0x28, 0x28, 0xe0, 0x10, 0x41, + 0xaa, 0x58, 0xf0, 0xab, 0x40, 0xac, 0xa7, 0x18, 0x8d, 0x70, 0x39, 0xb9, + 0x74, 0x41, 0x2f, 0x2c, 0x20, 0x86, 0x36, 0x40, 0x45, 0x82, 0x39, 0xd6, + 0x37, 0x38, 0xc4, 0x69, 0x39, 0xcc, 0x67, 0x41, 0xab, 0x0e, 0x21, 0x91, + 0x65, 0x49, 0xee, 0x8a, 0x29, 0x71, 0x74, 0x49, 0xc3, 0xa1, 0x18, 0x5c, + 0xa9, 0x28, 0xbb, 0xe1, 0x10, 0x60, 0x21, 0x10, 0x06, 0xe0, 0x10, 0xa1, + 0x25, 0x20, 0x7e, 0xfa, 0x18, 0x46, 0x21, 0x10, 0xd0, 0xb9, 0x28, 0xbe, + 0x6b, 0x38, 0xdc, 0xe8, 0x18, 0x88, 0x7b, 0x20, 0x4c, 0x76, 0x41, 0xb9, + 0x6a, 0x51, 0xf9, 0xe4, 0x18, 0x0b, 0xa8, 0x38, 0xac, 0x8c, 0x41, 0xad, + 0xd9, 0x28, 0x16, 0x25, 0x30, 0xcb, 0xb9, 0x30, 0xa8, 0x66, 0x38, 0xa6, + 0xa7, 0x48, 0x46, 0xac, 0x50, 0x11, 0x6b, 0x31, 0x42, 0xa1, 0x20, 0xa7, + 0xb8, 0x38, 0x72, 0x74, 0x41, 0x8e, 0xac, 0x50, 0x33, 0x76, 0x29, 0x9e, + 0x76, 0x41, 0xb6, 0x6d, 0x41, 0xbe, 0x86, 0x29, 0xec, 0xb6, 0x40, 0x7d, + 0xa8, 0x40, 0xf2, 0x44, 0x40, 0xbc, 0x6a, 0x39, 0x25, 0x6c, 0x59, 0x19, + 0x2b, 0x28, 0x18, 0x6d, 0x41, 0xe8, 0xac, 0x40, 0xd1, 0x64, 0x31, 0x5d, + 0xb4, 0x30, 0xc0, 0x69, 0x21, 0xd2, 0xb4, 0x40, 0x1f, 0x6a, 0x21, 0x51, + 0xaf, 0x28, 0x3f, 0x6e, 0x41, 0xff, 0x20, 0x10, 0x5f, 0x1a, 0x29, 0x01, + 0xe0, 0x10, 0x04, 0x70, 0x31, 0xc9, 0x69, 0x51, 0xc9, 0xa4, 0x70, 0x11, + 0xad, 0x40, 0xeb, 0x23, 0x20, 0x68, 0xa1, 0x28, 0xd0, 0xa7, 0x20, 0xdd, + 0xf9, 0x18, 0x19, 0xe7, 0x18, 0xd4, 0xa7, 0x38, 0x75, 0xac, 0x38, 0x4f, + 0x21, 0x10, 0x77, 0xab, 0x30, 0x90, 0xaf, 0x38, 0x33, 0x87, 0x51, 0x3f, + 0xb9, 0x30, 0xc2, 0x6a, 0x39, 0xe3, 0xb5, 0x40, 0x40, 0xa9, 0x48, 0x46, + 0x20, 0x10, 0x6f, 0xae, 0x30, 0x02, 0x21, 0x20, 0x83, 0xa0, 0x70, 0x01, + 0xe8, 0x18, 0x59, 0x82, 0x21, 0xc3, 0xaa, 0x30, 0xeb, 0xb5, 0x40, 0x8c, + 0x9b, 0x20, 0x63, 0xb2, 0x30, 0xe7, 0xa9, 0x60, 0x24, 0x32, 0x28, 0xbc, + 0xbb, 0x18, 0x74, 0x38, 0x30, 0xc3, 0xa3, 0x70, 0xe8, 0xae, 0x48, 0x0e, + 0xb4, 0x48, 0x38, 0x76, 0x41, 0x29, 0xa0, 0x30, 0xf1, 0x43, 0x50, 0xf3, + 0x25, 0x30, 0xb8, 0x74, 0x49, 0x4f, 0xac, 0x38, 0x1f, 0x6d, 0x41, 0x51, + 0x6e, 0x39, 0xa9, 0xb4, 0x48, 0xa0, 0xb9, 0x30, 0xb4, 0x6b, 0x41, 0xd5, + 0xa0, 0x28, 0x1e, 0x31, 0x20, 0xb0, 0x2a, 0x20, 0xf4, 0x79, 0x31, 0xe4, + 0x72, 0x51, 0x01, 0x6c, 0x38, 0xd1, 0x60, 0x21, 0xed, 0x43, 0x21, 0xb9, + 0xa4, 0x68, 0xc0, 0x69, 0x41, 0xdc, 0xc3, 0x18, 0x17, 0xfb, 0x18, 0x29, + 0xab, 0x38, 0x93, 0xa4, 0x48, 0x30, 0x65, 0x51, 0xc8, 0xb6, 0x40, 0xb9, + 0x55, 0x40, 0x60, 0xa8, 0x30, 0x8f, 0x54, 0x48, 0x4c, 0x98, 0x31, 0x88, + 0xb1, 0x48, 0xc1, 0x75, 0x29, 0x00, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, + 0x02, 0x14, 0x03, 0x13, 0x00, 0x11, 0x00, 0x15, 0x00, 0x03, 0x00, 0x07, + 0x00, 0x3c, 0x00, 0x38, 0x00, 0x11, 0x10, +}; + +static const u8 data_segment_data_w2c_highlights_d102[] = { + 0x30, 0x02, 0x03, 0x04, 0x22, 0x6a, 0x01, 0x00, 0x03, 0x0a, 0x16, 0x15, + 0x03, 0x04, 0x1d, 0x12, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x04, 0x1a, 0x03, 0x45, 0x1e, 0x16, 0x0b, 0x1e, 0xf1, 0x20, 0x5f, + 0xef, 0x28, 0x4f, 0x21, 0x10, 0x60, 0xee, 0x30, 0xdb, 0xc2, 0x10, 0xb1, + 0xe9, 0x20, 0xd8, 0xe2, 0x30, 0x06, 0xf8, 0x30, 0xa2, 0x38, 0x28, 0x69, + 0xfa, 0x28, 0x12, 0xe6, 0x38, 0xbe, 0xe6, 0x28, 0x64, 0xb1, 0x18, 0xc9, + 0xc1, 0x10, 0x57, 0xe1, 0x28, 0x2f, 0x2c, 0x20, 0x6d, 0x2b, 0x20, 0x11, + 0xc0, 0x10, 0x86, 0xc0, 0x10, 0xea, 0x20, 0x18, 0x83, 0xf8, 0x28, 0xef, + 0xa1, 0x38, 0x29, 0xe6, 0x20, 0x81, 0xf6, 0x28, 0xc3, 0x80, 0x18, 0x78, + 0x86, 0x28, 0x51, 0xe0, 0x10, 0xc7, 0xf9, 0x18, 0xc0, 0x2e, 0x28, 0x8c, + 0xe1, 0x30, 0x40, 0xe9, 0x18, 0x26, 0x26, 0x38, 0xbe, 0x6b, 0x38, 0x19, + 0x2b, 0x28, 0x5e, 0xef, 0x38, 0x06, 0xc0, 0x10, 0xbe, 0x9b, 0x10, 0x84, + 0xfb, 0x20, 0x91, 0x38, 0x30, 0x5e, 0x21, 0x20, 0x06, 0xe8, 0x20, 0x8f, + 0x3a, 0x19, 0xaa, 0xed, 0x20, 0x19, 0xc7, 0x18, 0x60, 0xfb, 0x20, 0xdf, + 0x43, 0x18, 0x00, 0x00, 0x00, 0x02, 0x21, 0x20, 0x84, 0xe9, 0x10, 0xde, + 0xf0, 0x30, 0x7b, 0xee, 0x20, 0xf9, 0xc4, 0x18, 0xcc, 0xdb, 0x18, 0x5e, + 0x82, 0x28, 0x60, 0x21, 0x10, 0xe0, 0xfa, 0x20, 0x5f, 0xef, 0x30, 0x1e, + 0xfb, 0x18, 0xe3, 0xf4, 0x48, 0xe7, 0x23, 0x20, 0x3b, 0xf9, 0x28, 0xd0, + 0x25, 0x30, 0x81, 0xf8, 0x38, 0x6b, 0xf2, 0x30, 0xa0, 0x11, 0x19, 0x30, + 0xf7, 0x20, 0xf0, 0xc1, 0x10, 0x05, 0xa0, 0x10, 0x01, 0xc8, 0x18, 0x92, + 0xc2, 0x10, 0xd9, 0xe1, 0x18, 0x43, 0xec, 0x20, 0x0b, 0x1a, 0x29, +}; + +static const u8 data_segment_data_w2c_highlights_d103[] = { + 0x02, 0xd8, 0x52, 0x6a, 0x04, 0x10, 0x11, 0x00, 0x14, 0x6d, 0x0e, 0x02, + 0x37, 0x08, 0x0d, 0x38, 0x39, 0x28, 0x5c, 0xa9, 0x28, 0x32, 0xae, 0x28, + 0x86, 0x36, 0x40, 0x93, 0xa4, 0x48, 0x29, 0x40, 0x30, 0x68, 0xa1, 0x28, + 0xf1, 0x3a, 0x28, 0xb1, 0x54, 0x38, 0xf2, 0xa4, 0x40, 0xd0, 0x25, 0x30, + 0x5f, 0x56, 0x28, 0x60, 0x62, 0x40, 0x6c, 0x2c, 0x30, 0x05, 0x42, 0x38, + 0xe8, 0x4e, 0x48, 0x06, 0x6e, 0x28, 0xd5, 0x60, 0x28, 0x5f, 0x9a, 0x28, + 0xe7, 0x49, 0x28, 0x19, 0x2b, 0x28, 0xcd, 0x4c, 0x50, 0x33, 0xa7, 0x50, + 0xd4, 0x47, 0x38, 0x5f, 0x2f, 0x28, 0x45, 0x22, 0x38, 0x07, 0x4a, 0x60, + 0xc3, 0x79, 0x28, 0x4e, 0x54, 0x48, 0x26, 0x26, 0x38, 0xd6, 0x37, 0x38, + 0xc3, 0x6a, 0x30, 0xef, 0x41, 0x38, 0x59, 0x2f, 0x28, 0x4b, 0x29, 0x30, + 0xcb, 0x59, 0x30, 0xde, 0x67, 0x28, 0x60, 0x40, 0x30, 0x24, 0x32, 0x28, + 0x5e, 0xac, 0x38, 0x00, 0x00, 0x00, 0x6e, 0xa1, 0x48, 0x3e, 0x50, 0x60, + 0xb3, 0x3a, 0x28, 0x50, 0x68, 0x40, 0x6a, 0x26, 0x28, 0xd1, 0x64, 0x30, + 0x1b, 0x2f, 0x28, 0xeb, 0x55, 0x40, 0x64, 0x5a, 0x28, 0xac, 0x4c, 0x40, + 0x00, 0x00, 0x12, 0x00, 0x11, 0x00, 0x38, 0x00, 0x03, 0x00, 0x13, +}; + +static const u8 data_segment_data_w2c_highlights_d104[] = { + 0x0a, 0x2e, 0x00, 0x0c, 0x2d, 0x07, 0x24, 0x06, 0x30, 0x00, 0x36, 0xa5, + 0x01, 0x12, 0x01, 0x00, 0x02, 0x00, 0x4c, 0x04, 0x13, 0x1a, 0x00, 0x00, + 0x02, 0x03, 0x25, 0x03, 0x0b, 0x0e, 0xdc, 0x23, 0x18, 0x66, 0x95, 0x30, + 0x74, 0x3b, 0x21, 0x4f, 0x21, 0x10, 0xc3, 0x4d, 0x68, 0xcf, 0xdb, 0x18, + 0x81, 0xcf, 0x38, 0x01, 0xc0, 0x10, 0x91, 0x2e, 0x20, 0x54, 0xdb, 0x20, + 0xd0, 0x25, 0x30, 0xa2, 0x38, 0x28, 0x85, 0xc4, 0x18, 0xa6, 0x36, 0x28, + 0xac, 0x87, 0x18, 0x71, 0x88, 0x40, 0x86, 0x36, 0x40, 0x81, 0xd6, 0x28, + 0x86, 0xc0, 0x10, 0x28, 0xc0, 0x10, 0xf2, 0x44, 0x40, 0x92, 0xc2, 0x10, + 0x45, 0x22, 0x38, 0x58, 0xdb, 0x20, 0xad, 0x39, 0x28, 0x00, 0x00, 0x00, + 0x18, 0x96, 0x40, 0x00, 0x00, 0x00, 0xaf, 0x27, 0x21, 0xc8, 0x35, 0x21, + 0x60, 0x21, 0x10, 0x7e, 0x2b, 0x71, 0xf9, 0xc4, 0x18, 0x60, 0x83, 0x30, + 0x02, 0x21, 0x20, 0x17, 0xdb, 0x18, 0x06, 0xc0, 0x10, 0x7e, 0xda, 0x18, + 0x29, 0x57, 0x40, 0x5d, 0xce, 0x20, 0x19, 0x2b, 0x28, 0x63, 0xc3, 0x18, + 0xd6, 0x85, 0x20, 0x00, 0x00, 0x00, 0xd3, 0xd9, 0x28, 0xab, 0xee, 0x20, + 0x5c, 0xdb, 0x20, 0xf4, 0x36, 0x41, 0x4f, 0x38, 0x19, 0x6a, 0x26, 0x39, + 0x4d, 0xda, 0x18, 0x5c, 0xce, 0x28, 0xc9, 0x2c, 0x21, 0x11, 0xc0, 0x10, + 0x19, 0xc7, 0x18, 0xdc, 0xd4, 0x38, 0x84, 0xdb, 0x20, 0x00, 0x00, 0x00, + 0x6f, 0x20, 0x18, 0xbe, 0x39, 0x31, 0xa1, 0x3a, 0x29, 0xac, 0x28, 0x60, + 0xa0, 0xcc, 0x40, 0xfc, 0xc4, 0x40, 0x1b, 0xca, 0x30, 0xc8, 0xd9, 0x18, + 0xf9, 0xc4, 0x58, 0x4b, 0x29, 0x30, 0x26, 0xd9, 0x30, 0xdb, 0xd4, 0x40, + 0x59, 0x2f, 0x28, 0xea, 0x20, 0x18, 0x83, 0x26, 0x89, 0xae, 0xda, 0x28, + 0x6a, 0xc6, 0x28, 0x24, 0x32, 0x28, 0xd6, 0x37, 0x38, 0xc9, 0xc1, 0x10, + 0x96, 0xd6, 0x40, 0x38, 0x39, 0x28, 0x29, 0x80, 0x30, 0x00, 0x00, 0x00, + 0x1e, 0x31, 0x20, 0x51, 0x03, 0x21, 0x26, 0x65, 0x20, 0x63, 0x3b, 0x19, + 0x5e, 0x38, 0x38, 0x68, 0x61, 0x28, 0xc7, 0x41, 0x30, 0x71, 0xb3, 0x28, + 0x26, 0x26, 0x38, 0xf0, 0xc1, 0x10, 0xb2, 0x25, 0x29, 0x6c, 0x2c, 0x30, + 0x01, 0xc8, 0x18, 0x5f, 0xfa, 0x28, 0xdb, 0xc2, 0x10, 0x0b, 0xd4, 0x28, + 0x8a, 0x86, 0x28, 0x60, 0x88, 0x60, 0xbb, 0xc1, 0x10, +}; + +static const u8 data_segment_data_w2c_highlights_d105[] = { + 0x07, 0x00, 0x74, 0x03, 0x00, 0x00, 0x06, 0x03, 0x00, 0x1a, 0x04, 0x00, + 0x18, 0x02, 0x21, 0xc0, 0x55, 0x18, 0xb4, 0x2b, 0x30, 0x27, 0xcd, 0x40, + 0xcb, 0xb9, 0x30, 0xb7, 0xb1, 0x38, 0x72, 0xcd, 0x38, 0xef, 0xac, 0x40, + 0x04, 0xd0, 0x30, 0xde, 0xc7, 0x28, 0x32, 0xd6, 0x30, 0x26, 0x25, 0x20, + 0x6a, 0xd6, 0x28, 0xee, 0xba, 0x18, 0xbb, 0xaf, 0x30, 0x67, 0xa3, 0x30, + 0xab, 0xee, 0x20, 0xf7, 0xb8, 0x20, 0xd9, 0xa1, 0x18, 0xd1, 0xc4, 0x30, + 0xf7, 0xd2, 0x30, 0x5f, 0xfa, 0x28, 0x4b, 0xa3, 0x38, 0xff, 0xa0, 0x10, + 0xf8, 0xd2, 0x28, 0xc0, 0xb6, 0x40, 0xf4, 0xd9, 0x30, 0xdf, 0xa1, 0x28, + 0xc4, 0xc9, 0x20, 0xbe, 0x6b, 0x38, 0xc0, 0xb6, 0x30, 0x28, 0xcd, 0x38, + 0xa6, 0x8e, 0x30, 0x75, 0x2c, 0x38, 0x33, 0xd6, 0x28, 0xbd, 0xa1, 0x28, + 0x71, 0xcd, 0x40, 0x47, 0xa7, 0x50, 0x65, 0x2e, 0x38, 0xee, 0xd9, 0x30, + 0x00, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x03, 0x14, 0x00, 0x11, 0x00, + 0x38, 0x00, 0x03, +}; + +static const u8 data_segment_data_w2c_highlights_d106[] = { + 0x14, 0x0c, 0x00, 0x01, 0x00, 0xd6, 0x06, 0x3e, 0x9b, 0x20, 0x8a, 0x90, + 0x58, 0x39, 0x8f, 0x68, 0x16, 0x25, 0x30, 0xab, 0x9b, 0x18, 0xf2, 0x44, + 0x40, 0x35, 0x63, 0x20, 0xd0, 0x25, 0x30, 0xe7, 0x23, 0x20, 0x19, 0x2b, + 0x28, 0xea, 0x20, 0x18, 0xa1, 0x9b, 0x18, 0x4f, 0x21, 0x10, 0x01, 0xa0, + 0x10, 0x24, 0x32, 0x28, 0x00, 0x00, 0x00, 0x42, 0x95, 0x40, 0x20, 0x7a, + 0x28, 0x02, 0x21, 0x20, 0x39, 0x8f, 0x10, +}; + +static const u8 data_segment_data_w2c_highlights_d107[] = { + 0x03, 0x22, 0x05, 0x97, 0x03, 0x04, 0x06, 0x0a, 0x37, 0x3b, 0x0a, 0x00, + 0xe6, 0x0d, 0x0a, 0x00, 0xdc, 0x23, 0x18, 0xc0, 0x34, 0x28, 0x24, 0x32, + 0x28, 0x91, 0x38, 0x30, 0xb0, 0x2a, 0x20, 0x6a, 0x39, 0x31, 0xa2, 0x38, + 0x28, 0xdc, 0x68, 0x30, 0xdb, 0x21, 0x11, 0x59, 0x2f, 0x29, 0xa1, 0x21, + 0x61, 0xef, 0x21, 0x81, 0xe8, 0x2e, 0x49, 0xad, 0x24, 0x69, 0x5e, 0x21, + 0x20, 0x71, 0x33, 0x29, 0x60, 0x21, 0x10, 0xea, 0x20, 0x18, 0x0b, 0x3a, + 0x28, 0x96, 0x2f, 0x31, 0xd0, 0x25, 0x30, 0xcb, 0x39, 0x31, 0x19, 0x2b, + 0x28, 0x7c, 0x41, 0x18, 0xa0, 0x31, 0x18, 0xed, 0x03, 0x21, 0xb7, 0x35, + 0x21, 0x40, 0x24, 0x21, 0xdc, 0x28, 0x79, 0x5f, 0x2f, 0x29, 0xc0, 0x2e, + 0x28, 0xef, 0x21, 0x39, 0x05, 0x22, 0x39, 0xab, 0xce, 0x20, 0x0f, 0x17, + 0x29, 0x4f, 0x21, 0x10, 0xa1, 0x81, 0x28, 0xe7, 0x23, 0x20, 0x06, 0xa0, + 0x10, 0x01, 0xa8, 0x18, 0x5f, 0xda, 0x28, 0x52, 0x33, 0x30, 0xd4, 0x27, + 0x39, 0xa4, 0x34, 0x28, 0x5f, 0x36, 0x28, 0xb6, 0x29, 0x20, 0xb4, 0x2b, + 0x31, 0xad, 0x39, 0x28, 0xf9, 0xa4, 0x18, 0x3d, 0xf7, 0x18, 0x68, 0x61, + 0x28, 0x38, 0x39, 0x29, 0x8f, 0x34, 0x21, 0x22, 0x2e, 0x30, 0x01, 0x20, + 0x10, 0x46, 0x38, 0x39, +}; + +static const u8 data_segment_data_w2c_highlights_d108[] = { + 0x04, 0x2b, 0x3c, 0x49, 0x10, 0x10, 0x59, 0x11, 0x01, 0x00, 0x00, 0x03, + 0x10, 0x04, 0x00, 0x0c, 0x29, 0xa0, 0x30, 0x4f, 0x81, 0x10, 0x00, 0x00, + 0x00, 0x40, 0xc9, 0x18, 0x69, 0x1b, 0x19, 0x0f, 0x77, 0x28, 0x7a, 0x27, + 0x10, 0x24, 0x92, 0x28, 0x1f, 0x0a, 0x21, 0x26, 0x45, 0x20, 0xa9, 0xd4, + 0x18, 0x19, 0x8b, 0x28, 0xdb, 0x1b, 0x19, 0x16, 0x1a, 0x29, 0xb7, 0x95, + 0x20, 0x28, 0xe0, 0x10, 0x6a, 0x86, 0x28, 0xd9, 0xc9, 0x18, 0x7b, 0xc5, + 0x28, 0xc4, 0x09, 0x21, 0xf0, 0x6b, 0x30, 0xf6, 0x1b, 0x11, 0x5f, 0x3a, + 0x29, 0x4e, 0x40, 0x30, 0xa3, 0x1b, 0x19, 0x42, 0x41, 0x20, 0x76, 0x7a, + 0x28, 0xed, 0x43, 0x21, 0x01, 0xe0, 0x10, 0x46, 0x5b, 0x21, 0x86, 0x96, + 0x40, 0xe6, 0x1b, 0x19, 0x4e, 0x00, 0x19, 0x0b, 0xc8, 0x18, 0xab, 0x2e, + 0x21, 0xe3, 0x1b, 0x19, 0xe9, 0x1b, 0x19, 0x57, 0x96, 0x28, 0xd8, 0x1b, + 0x19, 0xf4, 0x1b, 0x11, 0x64, 0x71, 0x18, 0xea, 0x80, 0x18, 0x88, 0xa1, + 0x18, 0xe5, 0x5a, 0x28, 0x02, 0x81, 0x20, 0x94, 0xca, 0x20, 0x5c, 0xa9, + 0x28, 0x81, 0x1b, 0x19, 0xdc, 0x48, 0x18, 0x83, 0xa0, 0x20, 0xd0, 0x85, + 0x30, 0x00, 0x00, 0x00, 0xf6, 0x1a, 0x29, 0xe0, 0xc5, 0x30, 0x32, 0x4e, + 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x01, 0x13, 0x02, 0x14, 0x00, + 0x12, 0x00, 0x13, 0x00, 0x11, 0x00, 0x15, 0x00, 0x38, 0x00, 0x03, 0x00, + 0x3c, +}; + +static const u8 data_segment_data_w2c_highlights_d109[] = { + 0x0e, 0x01, 0x00, 0x01, 0x00, 0x07, 0x66, 0x0c, 0x08, 0x00, 0x04, 0x0d, + 0x0b, 0x38, 0x02, 0x71, 0xd3, 0x28, 0x00, 0x00, 0x00, 0x5f, 0x36, 0x28, + 0xc3, 0x6a, 0x30, 0xe7, 0xc9, 0x28, 0xeb, 0x23, 0x20, 0xea, 0x20, 0x18, + 0xac, 0x87, 0x18, 0x59, 0x2f, 0x28, 0x63, 0xd6, 0x38, 0x60, 0xc8, 0x30, + 0x1c, 0x94, 0x20, 0x6f, 0x20, 0x18, 0x0b, 0xc6, 0x28, 0x0f, 0x37, 0x29, + 0x6f, 0xce, 0x30, 0xe8, 0xce, 0x48, 0xa1, 0xc5, 0x20, 0x47, 0x87, 0x48, + 0xd0, 0x25, 0x30, 0x42, 0x61, 0x20, 0xd4, 0xc7, 0x38, 0x4f, 0xac, 0x30, + 0x90, 0xc0, 0x18, 0xab, 0xee, 0x20, 0x19, 0x2b, 0x28, 0x38, 0x39, 0x28, + 0xfe, 0xd2, 0x40, 0x7b, 0xce, 0x20, 0xdc, 0x23, 0x18, 0x17, 0x8c, 0x28, + 0x4d, 0xc2, 0x58, 0x5f, 0xfa, 0x28, 0xc9, 0x2c, 0x21, 0x51, 0x03, 0x21, + 0xd6, 0x37, 0x38, 0x5e, 0xcc, 0x38, 0xf2, 0xd7, 0x38, 0x26, 0x65, 0x20, + 0xbe, 0xab, 0x38, 0x60, 0x21, 0x10, 0x79, 0xd3, 0x30, 0x00, 0x00, 0x00, + 0xe3, 0xd8, 0x28, 0xa6, 0xae, 0x30, 0xeb, 0xd5, 0x40, 0x4f, 0x21, 0x10, + 0xb0, 0x2a, 0x20, 0x6a, 0x26, 0x28, 0xc8, 0xd6, 0x40, 0x02, 0x21, 0x20, + 0x7c, 0x41, 0x18, 0x32, 0x6e, 0x28, 0x8c, 0x81, 0x18, 0x68, 0x61, 0x28, + 0x00, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x00, 0x14, 0x00, + 0x11, 0x00, 0x03, 0x00, 0x07, 0x00, 0x3c, +}; + +static const u8 data_segment_data_w2c_highlights_d110[] = { + 0x42, 0x41, 0x2d, 0xa6, 0x11, 0x0d, 0x0e, 0x02, 0x58, 0x69, 0x06, 0x02, + 0x0c, 0x04, 0x00, 0x07, 0x20, 0x02, 0x19, 0x00, 0x00, 0x11, 0x10, 0x06, + 0x2d, 0x0b, 0x13, 0x1d, 0x35, 0x00, 0x05, 0x3a, 0x2e, 0x28, 0xbb, 0xc1, + 0x10, 0x62, 0x94, 0x30, 0xc4, 0xe9, 0x20, 0x01, 0xe0, 0x18, 0xcb, 0xd9, + 0x30, 0x9e, 0xc5, 0x20, 0xd1, 0xe4, 0x30, 0x93, 0x44, 0x48, 0x60, 0xc0, + 0x30, 0xcf, 0x68, 0x39, 0x78, 0x68, 0x49, 0x71, 0xf6, 0x38, 0x90, 0xc0, + 0x18, 0xea, 0x80, 0x18, 0x2e, 0x66, 0x71, 0xca, 0x70, 0x38, 0xd9, 0xe1, + 0x38, 0xc8, 0xd6, 0x40, 0x38, 0x68, 0x49, 0xb2, 0x25, 0x28, 0xeb, 0x83, + 0x20, 0xd4, 0xc7, 0x38, 0x26, 0x45, 0x20, 0x5f, 0x1a, 0x29, 0x45, 0x82, + 0x38, 0xc4, 0xc7, 0x48, 0x6a, 0xd3, 0x48, 0xc4, 0x7a, 0x29, 0xeb, 0x61, + 0x31, 0x71, 0xb3, 0x28, 0x1b, 0xc8, 0x40, 0xeb, 0xd5, 0x40, 0x7f, 0x3b, + 0x19, 0xdd, 0x4d, 0x19, 0xd0, 0x65, 0x71, 0xa6, 0xae, 0x30, 0x13, 0x5b, + 0x29, 0x0c, 0x2f, 0x11, 0x06, 0xd8, 0x30, 0xbd, 0x71, 0x31, 0x4f, 0xd5, + 0x40, 0xa7, 0xd8, 0x38, 0x6e, 0x76, 0x29, 0xed, 0x63, 0x61, 0x1b, 0x68, + 0x61, 0x91, 0x75, 0x40, 0x93, 0x4b, 0x29, 0x5a, 0x61, 0x31, 0x0b, 0x4d, + 0x39, 0xa2, 0xd4, 0x20, 0x19, 0x8b, 0x28, 0xc0, 0x70, 0x58, 0x7b, 0x56, + 0x39, 0xd7, 0xc9, 0x48, 0xef, 0x68, 0x61, 0xf2, 0x24, 0x40, 0x36, 0xe5, + 0x20, 0xa6, 0xd9, 0x30, 0x0b, 0x76, 0x41, 0x9a, 0x4f, 0x21, 0xd9, 0xa8, + 0x20, 0x22, 0x85, 0x28, 0xc5, 0xd4, 0x48, 0xd8, 0x66, 0x61, 0x0f, 0x37, + 0x29, 0xf1, 0x70, 0x31, 0x8e, 0x56, 0x40, 0xd8, 0xf9, 0x30, 0x66, 0x25, + 0x29, 0x8b, 0x5a, 0x29, 0x6f, 0x80, 0x18, 0x02, 0x81, 0x20, 0x4b, 0x89, + 0x30, 0x88, 0x61, 0x18, 0x98, 0xc5, 0x30, 0xab, 0x0e, 0x21, 0xe1, 0x2c, + 0x40, 0x15, 0x68, 0x51, 0x28, 0xed, 0x28, 0xbe, 0xc6, 0x38, 0x60, 0x81, + 0x10, 0x24, 0x92, 0x28, 0x3b, 0x78, 0x31, 0x30, 0x60, 0x31, 0xf0, 0xcb, + 0x40, 0x66, 0x65, 0x49, 0x00, 0x00, 0x00, 0x38, 0x99, 0x28, 0x9d, 0xcf, + 0x38, 0x5c, 0x90, 0x20, 0xb7, 0x91, 0x38, 0x44, 0xce, 0x40, 0xd0, 0x85, + 0x30, 0xc8, 0x6b, 0x49, 0x59, 0x8f, 0x28, 0x4f, 0x81, 0x10, 0xb7, 0x28, + 0x19, 0x01, 0x4c, 0x38, 0xd1, 0xe0, 0x20, 0x86, 0x96, 0x40, 0x4e, 0x40, + 0x30, 0x42, 0x41, 0x20, 0x00, 0x00, 0x00, 0xc9, 0x2c, 0x21, 0x6a, 0xf6, + 0x28, 0x28, 0xa0, 0x10, 0xdc, 0x4d, 0x21, 0x00, 0x00, 0x00, 0x28, 0xd8, + 0x38, 0x00, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x00, 0x12, 0x00, 0x14, + 0x00, 0x11, 0x00, 0x38, 0x00, 0x03, 0x00, 0x3c, 0x00, 0x07, 0x00, 0x0e, + +}; + +static const u8 data_segment_data_w2c_highlights_d111[] = { + 0x02, 0x14, 0xf5, 0x09, 0x28, 0x00, 0x5e, 0x10, 0x11, 0x15, 0x6e, 0x00, + 0x22, 0x32, 0x14, 0x1c, 0x02, 0x21, 0x20, 0x74, 0x65, 0x48, 0xe7, 0x69, + 0x29, 0x4b, 0x89, 0x31, 0xb2, 0x87, 0x48, 0x73, 0xac, 0x21, 0xeb, 0x23, + 0x20, 0x44, 0x6e, 0x41, 0xbb, 0xc1, 0x10, 0xa5, 0x77, 0x28, 0x82, 0x6a, + 0x40, 0x86, 0x36, 0x40, 0xd1, 0x26, 0x28, 0x28, 0xc0, 0x10, 0xf7, 0xb8, + 0x21, 0xc0, 0x6f, 0x41, 0xed, 0x43, 0x21, 0x37, 0xf7, 0x20, 0xd0, 0x67, + 0x59, 0xab, 0x0e, 0x21, 0x1c, 0xb4, 0x21, 0xa2, 0xf1, 0x30, 0x47, 0x67, + 0x48, 0x57, 0x36, 0x28, 0x16, 0x25, 0x30, 0x4e, 0x60, 0x30, 0x57, 0x6f, + 0x41, 0xc8, 0x76, 0x41, 0x27, 0xe3, 0x18, 0x19, 0x8b, 0x29, 0x01, 0xc0, + 0x10, 0x7b, 0x25, 0x28, 0xf4, 0x8d, 0x29, 0xa6, 0xae, 0x30, 0xea, 0x80, + 0x19, 0x7b, 0xae, 0x21, 0xf2, 0x44, 0x20, 0x9c, 0x7a, 0x29, 0x59, 0x6f, + 0x31, 0x0f, 0x57, 0x29, 0x4f, 0x81, 0x11, 0x38, 0x99, 0x29, 0x45, 0x22, + 0x38, 0x3d, 0x37, 0x19, 0x76, 0xb3, 0x19, 0xac, 0x87, 0x18, 0x5f, 0x1a, + 0x29, 0x60, 0x21, 0x10, 0x23, 0x97, 0x30, 0xd4, 0x67, 0x39, 0x29, 0x60, + 0x31, 0x00, 0x00, 0x00, 0x6e, 0x78, 0x39, 0x68, 0x61, 0x28, 0xe8, 0xe7, + 0x30, 0x59, 0x2f, 0x28, 0x47, 0xf7, 0x28, 0xcb, 0x79, 0x31, 0x6f, 0x20, + 0x18, 0x26, 0x65, 0x20, 0x24, 0x32, 0x28, 0x88, 0x81, 0x18, 0xd0, 0x25, + 0x30, 0x4c, 0xfb, 0x20, 0x00, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, + 0x13, 0x00, 0x14, 0x00, 0x15, 0x00, 0x38, 0x00, 0x03, 0x00, 0x07, 0x00, + 0x3c, 0x00, 0x11, 0x00, 0x12, 0x04, 0x11, 0x08, +}; + +static const u8 data_segment_data_w2c_highlights_d112[] = { + 0x24, 0x03, 0x17, 0x11, 0x08, 0x0e, 0x00, 0x7f, 0xc4, 0x89, 0x20, 0x76, + 0x93, 0x18, 0x36, 0x8e, 0x28, 0xc0, 0x96, 0x40, 0xc3, 0x81, 0x18, 0xc7, + 0xac, 0x20, 0xea, 0x20, 0x18, 0x4f, 0x21, 0x10, 0x7f, 0x87, 0x20, 0x62, + 0xa6, 0x48, 0xac, 0xa7, 0x18, 0x51, 0x63, 0x20, 0x01, 0x20, 0x10, 0xd1, + 0x84, 0x30, 0xed, 0xa3, 0x20, 0x5f, 0x5a, 0x28, 0xdc, 0xa8, 0x30, 0xd5, + 0x93, 0x30, 0xab, 0x4e, 0x20, 0xc3, 0x8a, 0x30, 0x02, 0x21, 0x20, 0xd6, + 0xa5, 0x20, 0x29, 0xa6, 0x20, 0x5e, 0xa2, 0x28, 0xa3, 0x2f, 0x28, 0xa0, + 0xb8, 0x28, 0x23, 0x26, 0x30, 0xd9, 0x81, 0x18, +}; + +static const u8 data_segment_data_w2c_highlights_d113[] = { + 0x0f, 0x03, 0x14, 0x1c, 0x05, 0x37, 0x02, 0x01, 0x69, 0x3b, 0x18, 0x5e, + 0x62, 0x28, 0x4f, 0x41, 0x10, 0xe1, 0x43, 0x10, 0xdb, 0x3b, 0x18, 0x8a, + 0x66, 0x28, 0xa6, 0x6e, 0x30, 0x98, 0x65, 0x30, 0xba, 0x65, 0x20, 0x00, + 0x00, 0x00, 0xf2, 0x64, 0x20, 0xb0, 0x4a, 0x20, 0xdc, 0x68, 0x30, 0x42, + 0x61, 0x20, 0xd0, 0x63, 0x18, 0x4f, 0x6c, 0x30, 0xa3, 0x3b, 0x18, 0x66, + 0x45, 0x28, 0xd8, 0x3b, 0x18, 0x55, 0x61, 0x28, 0xd9, 0x69, 0x18, 0xd6, + 0x65, 0x20, 0xda, 0x73, 0x30, 0x60, 0x60, 0x30, 0xb7, 0x55, 0x20, 0x8d, + 0x72, 0x28, 0x02, 0x41, 0x20, 0x90, 0x3b, 0x20, +}; + +static const u8 data_segment_data_w2c_highlights_d114[] = { + 0x07, 0x13, 0x7a, 0x03, 0x00, 0x0c, 0x00, 0x03, 0x1f, 0x24, 0x00, 0x06, + 0x3a, 0x33, 0x00, 0xd0, 0x32, 0x50, 0x88, 0x81, 0x18, 0xad, 0xc1, 0x90, + 0x49, 0xdb, 0x18, 0xeb, 0x23, 0x20, 0xb7, 0x35, 0x20, 0xac, 0x87, 0x18, + 0xee, 0xaa, 0x28, 0xe9, 0xaa, 0x50, 0x26, 0x8e, 0x40, 0x45, 0x22, 0x38, + 0x73, 0x87, 0x30, 0xea, 0x20, 0x18, 0xf5, 0xb4, 0x48, 0x86, 0x36, 0x40, + 0xd0, 0x25, 0x30, 0xad, 0xc1, 0x38, 0x55, 0xc6, 0x30, 0xf6, 0x8c, 0x50, + 0x02, 0x21, 0x20, 0x19, 0x2b, 0x28, 0x18, 0x90, 0x60, 0x5c, 0x89, 0x28, + 0xa1, 0x61, 0x28, 0xc3, 0xc7, 0x18, 0xc8, 0x96, 0x40, 0xab, 0xee, 0x20, + 0x4f, 0x21, 0x10, 0x69, 0xdb, 0x18, 0x4b, 0x29, 0x30, 0xc4, 0xc9, 0x20, + 0x59, 0xa2, 0x20, 0x24, 0x32, 0x28, 0xd4, 0xa7, 0x38, 0x4e, 0x60, 0x30, + 0xd8, 0xdb, 0x18, 0x7a, 0x47, 0x10, 0xd5, 0xc0, 0x28, 0x03, 0x37, 0x38, + 0x5f, 0xfa, 0x28, 0xe5, 0xa1, 0x38, 0xf2, 0xa4, 0x40, 0xe6, 0xdb, 0x18, + 0x9d, 0xaf, 0x38, 0x00, 0x00, 0x12, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, + 0x00, 0x11, 0x00, 0x38, 0x00, 0x03, +}; + +static const u8 data_segment_data_w2c_highlights_d115[] = { + 0x01, 0x23, 0x10, 0x0e, 0x04, 0x19, 0x02, 0x02, 0x05, 0x1b, 0x00, 0x0d, + 0x0a, 0x00, 0x11, 0x00, 0x05, 0x0a, 0x02, 0x0a, 0x0c, 0x04, 0x05, 0x50, + 0x13, 0x1e, 0x00, 0x06, 0x00, 0x02, 0x09, 0x01, 0x79, 0x73, 0x30, 0xab, + 0xae, 0x21, 0xa8, 0x95, 0x41, 0x5e, 0x08, 0x42, 0xd1, 0x26, 0x29, 0x4e, + 0x60, 0x30, 0x20, 0x99, 0x31, 0xa9, 0x14, 0x1a, 0x86, 0x97, 0x39, 0xfe, + 0x8f, 0x61, 0x69, 0x9b, 0x19, 0x1b, 0x0e, 0x42, 0x01, 0x68, 0x19, 0x48, + 0x34, 0x31, 0x5a, 0x86, 0x31, 0xcf, 0x0d, 0x3a, 0x68, 0x0a, 0x22, 0x16, + 0x9a, 0x29, 0x2f, 0x92, 0x51, 0xa3, 0x9b, 0x19, 0x58, 0x13, 0x4a, 0xe5, + 0x7a, 0x28, 0xa9, 0x96, 0x39, 0xbc, 0x1b, 0x1a, 0xfe, 0x8f, 0x31, 0xc4, + 0x89, 0x21, 0x26, 0x65, 0x20, 0x06, 0x60, 0x11, 0x9f, 0x26, 0x49, 0x19, + 0xab, 0x28, 0x2f, 0x8b, 0x71, 0xac, 0x47, 0x18, 0x4f, 0x81, 0x10, 0x0b, + 0x90, 0x61, 0xf0, 0x0b, 0x32, 0x49, 0x9b, 0x19, 0x6c, 0x95, 0x41, 0xa1, + 0x26, 0x39, 0x7a, 0x27, 0x10, 0xd5, 0x9b, 0x19, 0x76, 0x93, 0x49, 0xce, + 0x06, 0x41, 0x94, 0x9b, 0x21, 0x10, 0xc6, 0x49, 0x4f, 0x4c, 0x31, 0x51, + 0x0a, 0x2a, 0xdc, 0x02, 0x5a, 0x81, 0x09, 0x42, 0x5c, 0x49, 0x28, 0x4d, + 0x99, 0x29, 0xea, 0xa0, 0x18, 0x38, 0x19, 0x29, 0xfb, 0x95, 0x41, 0xaa, + 0x9a, 0x21, 0x59, 0xd1, 0x59, 0x60, 0xe8, 0x31, 0x02, 0x01, 0x21, 0xb2, + 0x05, 0x2a, 0xf2, 0x89, 0x41, 0xb5, 0x90, 0x39, 0x00, 0x61, 0x31, 0x51, + 0xc3, 0x21, 0x24, 0xf2, 0x28, 0x5f, 0xba, 0x29, 0x4b, 0xc9, 0x30, 0xd0, + 0x25, 0x31, 0x42, 0x81, 0x21, 0x3f, 0x19, 0x32, 0xf6, 0x9a, 0x29, 0x86, + 0xf6, 0x40, 0x6f, 0x20, 0x19, 0x48, 0x06, 0x5a, 0xb5, 0x90, 0x59, 0xc1, + 0x05, 0x4a, 0x00, 0x00, 0x13, 0x01, 0x13, 0x02, 0x13, 0x03, 0x12, 0x04, + 0x12, 0x05, 0x12, 0x06, 0x12, 0x07, 0x12, 0x08, 0x12, 0x09, 0x14, 0x00, + 0x15, 0x00, 0x38, 0x00, 0x03, 0x00, 0x07, 0x00, 0x11, 0x0f, 0x11, 0x10, + +}; + +static const u8 data_segment_data_w2c_highlights_d116[] = { + 0x28, 0x00, 0x28, 0x00, 0x34, 0x00, 0x97, 0x00, 0x93, 0x01, 0x3d, 0x02, + 0x9d, 0x02, 0x1b, 0x03, 0x43, 0x03, 0x82, 0x03, 0x96, 0x03, 0x04, 0x04, + 0x28, 0x04, 0x5c, 0x04, 0x86, 0x04, 0x95, 0x04, 0x95, 0x04, 0x95, 0x04, + 0xa7, 0x04, 0xba, 0x04, 0x06, 0x63, 0x3c, 0x72, 0x15, 0x66, 0x06, 0x68, + 0x34, 0x6d, 0x02, 0x73, 0x07, 0x63, 0x33, 0x1c, 0x67, 0x6f, 0x23, 0x6a, + 0x73, 0x48, 0x74, 0x73, 0x0b, 0x63, 0x23, 0x0a, 0x63, 0x63, 0x2c, 0x63, + 0x6c, 0x0b, 0x63, 0x73, 0x0d, 0x63, 0x75, 0x2c, 0x65, 0x6c, 0x11, 0x65, + 0x78, 0x16, 0x66, 0x23, 0x16, 0x66, 0x73, 0x18, 0x67, 0x64, 0x1e, 0x67, + 0x79, 0x0a, 0x68, 0x68, 0x1f, 0x68, 0x73, 0x28, 0x6a, 0x6c, 0x29, 0x6b, + 0x74, 0x2f, 0x6d, 0x64, 0x2e, 0x6d, 0x6b, 0x35, 0x6d, 0x6c, 0x34, 0x6d, + 0x6d, 0x37, 0x70, 0x6c, 0x37, 0x70, 0x6d, 0x36, 0x70, 0x70, 0x39, 0x70, + 0x73, 0x3b, 0x70, 0x79, 0x3d, 0x72, 0x62, 0x3e, 0x72, 0x73, 0x40, 0x73, + 0x63, 0x04, 0x73, 0x68, 0x46, 0x74, 0x66, 0x02, 0x61, 0x73, 0x6d, 0x0a, + 0x63, 0x70, 0x70, 0x0c, 0x63, 0x73, 0x73, 0x12, 0x65, 0x6c, 0x6d, 0x27, + 0x6a, 0x73, 0x78, 0x2d, 0x6c, 0x75, 0x61, 0x31, 0x6d, 0x64, 0x78, 0x32, + 0x6e, 0x69, 0x6d, 0x33, 0x6e, 0x69, 0x78, 0x38, 0x70, 0x68, 0x70, 0x43, + 0x73, 0x71, 0x6c, 0x4a, 0x74, 0x73, 0x78, 0x4b, 0x76, 0x75, 0x65, 0x4c, + 0x77, 0x61, 0x74, 0x4e, 0x78, 0x6d, 0x6c, 0x50, 0x7a, 0x69, 0x67, 0x05, + 0x62, 0x61, 0x74, 0x0a, 0x63, 0x2b, 0x2b, 0x23, 0x63, 0x6a, 0x73, 0x08, + 0x63, 0x6c, 0x6a, 0x05, 0x63, 0x6d, 0x64, 0x48, 0x63, 0x74, 0x73, 0x0d, + 0x63, 0x75, 0x68, 0x0a, 0x63, 0x78, 0x78, 0x05, 0x64, 0x6f, 0x73, 0x36, + 0x64, 0x70, 0x6b, 0x36, 0x64, 0x70, 0x72, 0x08, 0x65, 0x64, 0x6e, 0x13, + 0x65, 0x72, 0x6c, 0x11, 0x65, 0x78, 0x73, 0x14, 0x66, 0x30, 0x33, 0x14, + 0x66, 0x30, 0x38, 0x15, 0x66, 0x37, 0x37, 0x14, 0x66, 0x39, 0x30, 0x14, + 0x66, 0x39, 0x35, 0x15, 0x66, 0x6f, 0x72, 0x16, 0x66, 0x73, 0x69, 0x16, + 0x66, 0x73, 0x78, 0x1d, 0x67, 0x71, 0x6c, 0x1e, 0x67, 0x73, 0x68, 0x1e, + 0x67, 0x76, 0x79, 0x46, 0x68, 0x63, 0x6c, 0x0a, 0x68, 0x70, 0x70, 0x13, + 0x68, 0x72, 0x6c, 0x21, 0x68, 0x74, 0x6d, 0x0a, 0x68, 0x78, 0x78, 0x29, + 0x6b, 0x74, 0x73, 0x36, 0x6c, 0x70, 0x72, 0x2c, 0x6c, 0x73, 0x70, 0x23, + 0x6d, 0x6a, 0x73, 0x35, 0x6d, 0x6c, 0x69, 0x48, 0x6d, 0x74, 0x73, 0x36, + 0x70, 0x61, 0x73, 0x39, 0x70, 0x73, 0x31, 0x40, 0x73, 0x62, 0x74, 0x2c, + 0x73, 0x63, 0x6d, 0x42, 0x73, 0x6f, 0x6c, 0x4e, 0x73, 0x76, 0x67, 0x2a, + 0x74, 0x65, 0x78, 0x4e, 0x78, 0x73, 0x64, 0x4f, 0x79, 0x6d, 0x6c, 0x50, + 0x7a, 0x6f, 0x6e, 0x04, 0x7a, 0x73, 0x68, 0x04, 0x62, 0x61, 0x73, 0x68, + 0x0d, 0x63, 0x75, 0x64, 0x61, 0x0e, 0x64, 0x61, 0x72, 0x74, 0x0f, 0x64, + 0x69, 0x66, 0x66, 0x1b, 0x67, 0x6c, 0x73, 0x6c, 0x20, 0x68, 0x6c, 0x73, + 0x6c, 0x21, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x6a, 0x61, 0x76, 0x61, 0x24, + 0x6a, 0x73, 0x6f, 0x6e, 0x2b, 0x6c, 0x65, 0x73, 0x73, 0x2c, 0x6c, 0x69, + 0x73, 0x70, 0x34, 0x6f, 0x62, 0x6a, 0x63, 0x37, 0x70, 0x65, 0x72, 0x6c, + 0x3d, 0x72, 0x75, 0x62, 0x79, 0x3e, 0x72, 0x75, 0x73, 0x74, 0x3f, 0x73, + 0x61, 0x73, 0x73, 0x41, 0x73, 0x63, 0x73, 0x73, 0x47, 0x74, 0x6f, 0x6d, + 0x6c, 0x49, 0x74, 0x73, 0x72, 0x78, 0x4d, 0x77, 0x67, 0x73, 0x6c, 0x4f, + 0x79, 0x61, 0x6d, 0x6c, 0x08, 0x63, 0x6c, 0x6a, 0x63, 0x08, 0x63, 0x6c, + 0x6a, 0x73, 0x1b, 0x63, 0x6f, 0x6d, 0x70, 0x1b, 0x66, 0x72, 0x61, 0x67, + 0x1b, 0x67, 0x65, 0x6f, 0x6d, 0x2e, 0x6d, 0x61, 0x6b, 0x65, 0x39, 0x70, + 0x73, 0x64, 0x31, 0x39, 0x70, 0x73, 0x6d, 0x31, 0x39, 0x70, 0x77, 0x73, + 0x68, 0x17, 0x74, 0x72, 0x65, 0x73, 0x17, 0x74, 0x73, 0x63, 0x6e, 0x1b, + 0x76, 0x65, 0x72, 0x74, 0x4c, 0x77, 0x61, 0x73, 0x6d, 0x03, 0x61, 0x73, + 0x74, 0x72, 0x6f, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x09, 0x63, 0x6d, + 0x61, 0x6b, 0x65, 0x1a, 0x67, 0x6c, 0x65, 0x61, 0x6d, 0x25, 0x6a, 0x73, + 0x6f, 0x6e, 0x35, 0x26, 0x6a, 0x73, 0x6f, 0x6e, 0x6c, 0x28, 0x6a, 0x75, + 0x6c, 0x69, 0x61, 0x2a, 0x6c, 0x61, 0x74, 0x65, 0x78, 0x35, 0x6f, 0x63, + 0x61, 0x6d, 0x6c, 0x3a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x40, 0x73, 0x63, + 0x61, 0x6c, 0x61, 0x45, 0x73, 0x77, 0x69, 0x66, 0x74, 0x2c, 0x65, 0x6c, + 0x69, 0x73, 0x70, 0x24, 0x6a, 0x73, 0x6f, 0x6e, 0x63, 0x0f, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x04, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x0b, 0x63, 0x73, + 0x68, 0x61, 0x72, 0x70, 0x11, 0x65, 0x6c, 0x69, 0x78, 0x69, 0x72, 0x13, + 0x65, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x16, 0x66, 0x73, 0x68, 0x61, 0x72, + 0x70, 0x1e, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x29, 0x6b, 0x6f, 0x74, + 0x6c, 0x69, 0x6e, 0x30, 0x6d, 0x61, 0x74, 0x6c, 0x61, 0x62, 0x36, 0x70, + 0x61, 0x73, 0x63, 0x61, 0x6c, 0x3b, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, + 0x44, 0x73, 0x76, 0x65, 0x6c, 0x74, 0x65, 0x36, 0x64, 0x65, 0x6c, 0x70, + 0x68, 0x69, 0x10, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x1c, 0x67, 0x6f, + 0x6c, 0x61, 0x6e, 0x67, 0x1e, 0x67, 0x72, 0x61, 0x64, 0x6c, 0x65, 0x34, + 0x6f, 0x62, 0x6a, 0x63, 0x70, 0x70, 0x30, 0x6f, 0x63, 0x74, 0x61, 0x76, + 0x65, 0x2c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x46, 0x74, 0x66, 0x76, + 0x61, 0x72, 0x73, 0x08, 0x63, 0x6c, 0x6f, 0x6a, 0x75, 0x72, 0x65, 0x14, + 0x66, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x1d, 0x67, 0x72, 0x61, 0x70, + 0x68, 0x71, 0x6c, 0x1f, 0x68, 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x3c, + 0x72, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x67, 0x64, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x19, 0x67, 0x64, 0x73, 0x68, 0x61, 0x64, 0x65, + 0x72, 0x2e, 0x6d, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x6d, + 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x42, 0x73, 0x6f, 0x6c, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x02, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, + 0x79, 0x3a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x46, 0x74, + 0x65, 0x72, 0x72, 0x61, 0x66, 0x6f, 0x72, 0x6d, 0x05, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x64, 0x6f, 0x63, 0x6b, 0x65, + 0x72, 0x66, 0x69, 0x6c, 0x65, 0x17, 0x67, 0x64, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x39, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, + 0x65, 0x6c, 0x6c, 0x48, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x2d, + 0x74, 0x73, 0x2c, 0x65, 0x6d, 0x61, 0x63, 0x73, 0x2d, 0x6c, 0x69, 0x73, + 0x70, 0x0f, 0x67, 0x69, 0x74, 0x2d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x0f, 0x67, 0x69, 0x74, 0x2d, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x23, + 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x34, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x63, 0x48, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x19, 0x67, 0x64, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x69, 0x6e, 0x63, 0x34, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2d, 0x63, 0x04, 0x73, 0x68, 0x65, + 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x01, 0x61, 0x6e, 0x67, + 0x75, 0x6c, 0x61, 0x72, 0x2d, 0x68, 0x74, 0x6d, 0x6c, 0x19, 0x67, 0x6f, + 0x64, 0x6f, 0x74, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x65, 0x72, 0x36, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x70, 0x61, 0x73, 0x63, 0x61, 0x6c, 0x04, + 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x66, 0x69, + 0x6c, 0x65, 0x36, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x70, 0x61, + 0x73, 0x63, 0x61, 0x6c, 0x34, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x2d, 0x63, 0x70, 0x70, 0x17, 0x67, 0x6f, 0x64, 0x6f, 0x74, + 0x2d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x14, 0x66, 0x6f, + 0x72, 0x74, 0x72, 0x61, 0x6e, 0x2d, 0x66, 0x72, 0x65, 0x65, 0x2d, 0x66, + 0x6f, 0x72, 0x6d, 0x15, 0x66, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x2d, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x2d, 0x66, 0x6f, 0x72, 0x6d, +}; + +static void init_memories(w2c_highlights* instance) { + wasm_rt_allocate_memory(&instance->w2c_memory, 3, 65536, 0, 65536); + LOAD_DATA(instance->w2c_memory, 3481u, data_segment_data_w2c_highlights_d0, 5); + LOAD_DATA(instance->w2c_memory, 3504u, data_segment_data_w2c_highlights_d1, 16); + LOAD_DATA(instance->w2c_memory, 3532u, data_segment_data_w2c_highlights_d2, 5); + LOAD_DATA(instance->w2c_memory, 3563u, data_segment_data_w2c_highlights_d3, 6); + LOAD_DATA(instance->w2c_memory, 3596u, data_segment_data_w2c_highlights_d4, 3); + LOAD_DATA(instance->w2c_memory, 3738u, data_segment_data_w2c_highlights_d5, 4); + LOAD_DATA(instance->w2c_memory, 3761u, data_segment_data_w2c_highlights_d6, 15); + LOAD_DATA(instance->w2c_memory, 3787u, data_segment_data_w2c_highlights_d7, 6); + LOAD_DATA(instance->w2c_memory, 3819u, data_segment_data_w2c_highlights_d8, 36); + LOAD_DATA(instance->w2c_memory, 3984u, data_segment_data_w2c_highlights_d9, 14); + LOAD_DATA(instance->w2c_memory, 4016u, data_segment_data_w2c_highlights_d10, 16); + LOAD_DATA(instance->w2c_memory, 4042u, data_segment_data_w2c_highlights_d11, 7); + LOAD_DATA(instance->w2c_memory, 4075u, data_segment_data_w2c_highlights_d12, 6); + LOAD_DATA(instance->w2c_memory, 4107u, data_segment_data_w2c_highlights_d13, 4); + LOAD_DATA(instance->w2c_memory, 4273u, data_segment_data_w2c_highlights_d14, 15); + LOAD_DATA(instance->w2c_memory, 4298u, data_segment_data_w2c_highlights_d15, 6); + LOAD_DATA(instance->w2c_memory, 4331u, data_segment_data_w2c_highlights_d16, 4); + LOAD_DATA(instance->w2c_memory, 4363u, data_segment_data_w2c_highlights_d17, 4); + LOAD_DATA(instance->w2c_memory, 4506u, data_segment_data_w2c_highlights_d18, 4); + LOAD_DATA(instance->w2c_memory, 4529u, data_segment_data_w2c_highlights_d19, 15); + LOAD_DATA(instance->w2c_memory, 4556u, data_segment_data_w2c_highlights_d20, 10); + LOAD_DATA(instance->w2c_memory, 4575u, data_segment_data_w2c_highlights_d21, 23); + LOAD_DATA(instance->w2c_memory, 4607u, data_segment_data_w2c_highlights_d22, 16); + LOAD_DATA(instance->w2c_memory, 4785u, data_segment_data_w2c_highlights_d23, 15); + LOAD_DATA(instance->w2c_memory, 4810u, data_segment_data_w2c_highlights_d24, 7); + LOAD_DATA(instance->w2c_memory, 4843u, data_segment_data_w2c_highlights_d25, 6); + LOAD_DATA(instance->w2c_memory, 4866u, data_segment_data_w2c_highlights_d26, 13); + LOAD_DATA(instance->w2c_memory, 5041u, data_segment_data_w2c_highlights_d27, 15); + LOAD_DATA(instance->w2c_memory, 5066u, data_segment_data_w2c_highlights_d28, 7); + LOAD_DATA(instance->w2c_memory, 5100u, data_segment_data_w2c_highlights_d29, 3); + LOAD_DATA(instance->w2c_memory, 5131u, data_segment_data_w2c_highlights_d30, 4); + LOAD_DATA(instance->w2c_memory, 5264u, data_segment_data_w2c_highlights_d31, 14); + LOAD_DATA(instance->w2c_memory, 5296u, data_segment_data_w2c_highlights_d32, 16); + LOAD_DATA(instance->w2c_memory, 5322u, data_segment_data_w2c_highlights_d33, 68); + LOAD_DATA(instance->w2c_memory, 5530u, data_segment_data_w2c_highlights_d34, 4); + LOAD_DATA(instance->w2c_memory, 5553u, data_segment_data_w2c_highlights_d35, 15); + LOAD_DATA(instance->w2c_memory, 5578u, data_segment_data_w2c_highlights_d36, 7); + LOAD_DATA(instance->w2c_memory, 5611u, data_segment_data_w2c_highlights_d37, 6); + LOAD_DATA(instance->w2c_memory, 5643u, data_segment_data_w2c_highlights_d38, 4); + LOAD_DATA(instance->w2c_memory, 5785u, data_segment_data_w2c_highlights_d39, 5); + LOAD_DATA(instance->w2c_memory, 5808u, data_segment_data_w2c_highlights_d40, 16); + LOAD_DATA(instance->w2c_memory, 5834u, data_segment_data_w2c_highlights_d41, 7); + LOAD_DATA(instance->w2c_memory, 5867u, data_segment_data_w2c_highlights_d42, 4); + LOAD_DATA(instance->w2c_memory, 5899u, data_segment_data_w2c_highlights_d43, 4); + LOAD_DATA(instance->w2c_memory, 6065u, data_segment_data_w2c_highlights_d44, 15); + LOAD_DATA(instance->w2c_memory, 6090u, data_segment_data_w2c_highlights_d45, 37); + LOAD_DATA(instance->w2c_memory, 6146u, data_segment_data_w2c_highlights_d46, 13); + LOAD_DATA(instance->w2c_memory, 6301u, data_segment_data_w2c_highlights_d47, 1); + LOAD_DATA(instance->w2c_memory, 6320u, data_segment_data_w2c_highlights_d48, 16); + LOAD_DATA(instance->w2c_memory, 6348u, data_segment_data_w2c_highlights_d49, 4); + LOAD_DATA(instance->w2c_memory, 6380u, data_segment_data_w2c_highlights_d50, 35); + LOAD_DATA(instance->w2c_memory, 448u, data_segment_data_w2c_highlights_d51, 219); + LOAD_DATA(instance->w2c_memory, 667u, data_segment_data_w2c_highlights_d52, 679); + LOAD_DATA(instance->w2c_memory, 7056u, data_segment_data_w2c_highlights_d53, 150); + LOAD_DATA(instance->w2c_memory, 28352u, data_segment_data_w2c_highlights_d54, 7160); + LOAD_DATA(instance->w2c_memory, 13984u, data_segment_data_w2c_highlights_d55, 142); + LOAD_DATA(instance->w2c_memory, 38592u, data_segment_data_w2c_highlights_d56, 1); + LOAD_DATA(instance->w2c_memory, 38602u, data_segment_data_w2c_highlights_d57, 125); + LOAD_DATA(instance->w2c_memory, 27233u, data_segment_data_w2c_highlights_d58, 537); + LOAD_DATA(instance->w2c_memory, 38736u, data_segment_data_w2c_highlights_d59, 135); + LOAD_DATA(instance->w2c_memory, 14144u, data_segment_data_w2c_highlights_d60, 83); + LOAD_DATA(instance->w2c_memory, 14240u, data_segment_data_w2c_highlights_d61, 192); + LOAD_DATA(instance->w2c_memory, 14496u, data_segment_data_w2c_highlights_d62, 191); + LOAD_DATA(instance->w2c_memory, 14688u, data_segment_data_w2c_highlights_d63, 365); + LOAD_DATA(instance->w2c_memory, 15073u, data_segment_data_w2c_highlights_d64, 196); + LOAD_DATA(instance->w2c_memory, 15296u, data_segment_data_w2c_highlights_d65, 229); + LOAD_DATA(instance->w2c_memory, 15552u, data_segment_data_w2c_highlights_d66, 345); + LOAD_DATA(instance->w2c_memory, 16320u, data_segment_data_w2c_highlights_d67, 113); + LOAD_DATA(instance->w2c_memory, 15904u, data_segment_data_w2c_highlights_d68, 400); + LOAD_DATA(instance->w2c_memory, 16512u, data_segment_data_w2c_highlights_d69, 278); + LOAD_DATA(instance->w2c_memory, 16800u, data_segment_data_w2c_highlights_d70, 61); + LOAD_DATA(instance->w2c_memory, 16864u, data_segment_data_w2c_highlights_d71, 154); + LOAD_DATA(instance->w2c_memory, 17024u, data_segment_data_w2c_highlights_d72, 110); + LOAD_DATA(instance->w2c_memory, 17152u, data_segment_data_w2c_highlights_d73, 161); + LOAD_DATA(instance->w2c_memory, 17345u, data_segment_data_w2c_highlights_d74, 500); + LOAD_DATA(instance->w2c_memory, 23553u, data_segment_data_w2c_highlights_d75, 242); + LOAD_DATA(instance->w2c_memory, 17856u, data_segment_data_w2c_highlights_d76, 379); + LOAD_DATA(instance->w2c_memory, 25408u, data_segment_data_w2c_highlights_d77, 287); + LOAD_DATA(instance->w2c_memory, 18240u, data_segment_data_w2c_highlights_d78, 92); + LOAD_DATA(instance->w2c_memory, 18400u, data_segment_data_w2c_highlights_d79, 37); + LOAD_DATA(instance->w2c_memory, 18465u, data_segment_data_w2c_highlights_d80, 156); + LOAD_DATA(instance->w2c_memory, 19488u, data_segment_data_w2c_highlights_d81, 67); + LOAD_DATA(instance->w2c_memory, 19744u, data_segment_data_w2c_highlights_d82, 286); + LOAD_DATA(instance->w2c_memory, 18656u, data_segment_data_w2c_highlights_d83, 328); + LOAD_DATA(instance->w2c_memory, 19616u, data_segment_data_w2c_highlights_d84, 98); + LOAD_DATA(instance->w2c_memory, 20032u, data_segment_data_w2c_highlights_d85, 188); + LOAD_DATA(instance->w2c_memory, 20224u, data_segment_data_w2c_highlights_d86, 93); + LOAD_DATA(instance->w2c_memory, 20321u, data_segment_data_w2c_highlights_d87, 218); + LOAD_DATA(instance->w2c_memory, 20544u, data_segment_data_w2c_highlights_d88, 208); + LOAD_DATA(instance->w2c_memory, 20768u, data_segment_data_w2c_highlights_d89, 232); + LOAD_DATA(instance->w2c_memory, 21024u, data_segment_data_w2c_highlights_d90, 223); + LOAD_DATA(instance->w2c_memory, 21248u, data_segment_data_w2c_highlights_d91, 176); + LOAD_DATA(instance->w2c_memory, 21440u, data_segment_data_w2c_highlights_d92, 255); + LOAD_DATA(instance->w2c_memory, 21698u, data_segment_data_w2c_highlights_d93, 256); + LOAD_DATA(instance->w2c_memory, 21984u, data_segment_data_w2c_highlights_d94, 308); + LOAD_DATA(instance->w2c_memory, 22304u, data_segment_data_w2c_highlights_d95, 89); + LOAD_DATA(instance->w2c_memory, 22400u, data_segment_data_w2c_highlights_d96, 175); + LOAD_DATA(instance->w2c_memory, 22592u, data_segment_data_w2c_highlights_d97, 134); + LOAD_DATA(instance->w2c_memory, 22752u, data_segment_data_w2c_highlights_d98, 370); + LOAD_DATA(instance->w2c_memory, 23136u, data_segment_data_w2c_highlights_d99, 106); + LOAD_DATA(instance->w2c_memory, 23264u, data_segment_data_w2c_highlights_d100, 274); + LOAD_DATA(instance->w2c_memory, 23810u, data_segment_data_w2c_highlights_d101, 547); + LOAD_DATA(instance->w2c_memory, 24384u, data_segment_data_w2c_highlights_d102, 251); + LOAD_DATA(instance->w2c_memory, 24641u, data_segment_data_w2c_highlights_d103, 179); + LOAD_DATA(instance->w2c_memory, 24898u, data_segment_data_w2c_highlights_d104, 333); + LOAD_DATA(instance->w2c_memory, 25249u, data_segment_data_w2c_highlights_d105, 147); + LOAD_DATA(instance->w2c_memory, 25697u, data_segment_data_w2c_highlights_d106, 67); + LOAD_DATA(instance->w2c_memory, 25792u, data_segment_data_w2c_highlights_d107, 184); + LOAD_DATA(instance->w2c_memory, 25984u, data_segment_data_w2c_highlights_d108, 205); + LOAD_DATA(instance->w2c_memory, 26209u, data_segment_data_w2c_highlights_d109, 199); + LOAD_DATA(instance->w2c_memory, 26433u, data_segment_data_w2c_highlights_d110, 384); + LOAD_DATA(instance->w2c_memory, 26880u, data_segment_data_w2c_highlights_d111, 236); + LOAD_DATA(instance->w2c_memory, 27136u, data_segment_data_w2c_highlights_d112, 92); + LOAD_DATA(instance->w2c_memory, 27776u, data_segment_data_w2c_highlights_d113, 92); + LOAD_DATA(instance->w2c_memory, 27873u, data_segment_data_w2c_highlights_d114, 162); + LOAD_DATA(instance->w2c_memory, 28064u, data_segment_data_w2c_highlights_d115, 288); + LOAD_DATA(instance->w2c_memory, 1360u, data_segment_data_w2c_highlights_d116, 1210); +} + +static void init_data_instances(w2c_highlights *instance) { +} + +static const wasm_elem_segment_expr_t elem_segment_exprs_w2c_highlights_e0[] = { + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f406, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f128, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f232, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f209, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f238, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f239, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f242, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f245, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f249, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f256, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f258, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f260, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f91, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f261, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f262, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f265, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f271, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f274, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f275, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f277, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f280, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f281, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f292, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f298, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f297, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f301, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f303, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f299, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f305, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f306, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f308, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f310, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f311, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f118, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f312, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f151, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f313, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f314, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f315, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f173, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f322, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f324, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f327, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f92, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f330, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f332, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f338, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f229, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f341, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f345, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f349, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f352, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f354, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f285, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f356, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f359, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f364, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f368, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f369, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f295, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f371, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f372, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f373, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f94, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f375, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f93, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f376, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f377, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f203, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f379, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f380, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f391, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f180, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f188, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f193, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f396, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f398, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f399, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f102, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f202, {NULL}, 0}, + {RefFunc, w2c_highlights_t1, (wasm_rt_function_ptr_t)wrap_w2c_highlights_f405, {NULL}, 0}, +}; + +static void init_tables(w2c_highlights* instance) { + wasm_rt_allocate_funcref_table(&instance->w2c_T0, 81, 81); + funcref_table_init(&instance->w2c_T0, elem_segment_exprs_w2c_highlights_e0, 81, 0u, 0, 81, instance); +} + +static void init_elem_instances(w2c_highlights *instance) { +} + +/* export: 'memory' */ +wasm_rt_memory_t* w2c_highlights_memory(w2c_highlights* instance) { + return &instance->w2c_memory; +} + +/* export: 'liveStage' */ +u32 w2c_highlights_liveStage(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveStage_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveInitDoc' */ +void w2c_highlights_liveInitDoc(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + w2c_highlights_liveInitDoc_0(instance, var_p0, var_p1, var_p2); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif +} + +/* export: 'liveApplyEdits' */ +void w2c_highlights_liveApplyEdits(w2c_highlights* instance, u32 var_p0, u32 var_p1) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + w2c_highlights_liveApplyEdits_0(instance, var_p0, var_p1); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif +} + +/* export: 'liveRun' */ +u32 w2c_highlights_liveRun(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveRun_0(instance, var_p0, var_p1, var_p2); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveLineCount' */ +u32 w2c_highlights_liveLineCount(w2c_highlights* instance) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveLineCount_0(instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveLineLen' */ +u32 w2c_highlights_liveLineLen(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveLineLen_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveLineByteLen' */ +u32 w2c_highlights_liveLineByteLen(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveLineByteLen_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveLineTextPtr' */ +u32 w2c_highlights_liveLineTextPtr(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveLineTextPtr_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveLineFlags' */ +u32 w2c_highlights_liveLineFlags(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveLineFlags_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveLineTokPtr' */ +u32 w2c_highlights_liveLineTokPtr(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveLineTokPtr_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveLineTokCount' */ +u32 w2c_highlights_liveLineTokCount(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveLineTokCount_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveChangesPtr' */ +u32 w2c_highlights_liveChangesPtr(w2c_highlights* instance) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveChangesPtr_0(instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'liveStats' */ +u32 w2c_highlights_liveStats(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + u32 ret = w2c_highlights_liveStats_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif + return ret; +} + +/* export: 'highlight' */ +void w2c_highlights_highlight(w2c_highlights* instance) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + w2c_highlights_highlight_0(instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif +} + +/* export: 'highlightStream' */ +void w2c_highlights_highlightStream(w2c_highlights* instance, u32 var_p0) { +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + w2c_highlights_highlightStream_0(instance, var_p0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif +} + +/* handler for missing tail-call on import: 'env' 'is_id_continue' */ +WEAK_FUNC_DECL(wasm_tailcall_w2c_env_is_id_continue, wasm_fallback_highlights_w2c_env_is_id_continue) +{ + next->fn = NULL; + struct wasm_multi_ii params; + wasm_rt_memcpy(¶ms, tail_call_stack, sizeof(params)); + u32 result = w2c_env_is_id_continue(*instance_ptr, params.i0, params.i1); + wasm_rt_memcpy(tail_call_stack, &result, sizeof(result)); +} + +/* handler for missing tail-call on import: 'env' 'is_id_start' */ +WEAK_FUNC_DECL(wasm_tailcall_w2c_env_is_id_start, wasm_fallback_highlights_w2c_env_is_id_start) +{ + next->fn = NULL; + struct wasm_multi_ii params; + wasm_rt_memcpy(¶ms, tail_call_stack, sizeof(params)); + u32 result = w2c_env_is_id_start(*instance_ptr, params.i0, params.i1); + wasm_rt_memcpy(tail_call_stack, &result, sizeof(result)); +} + +static void init_instance_import(w2c_highlights* instance, struct w2c_env* w2c_env_instance) { + instance->w2c_env_instance = w2c_env_instance; +} + +void wasm2c_highlights_instantiate(w2c_highlights* instance, struct w2c_env* w2c_env_instance) { + assert(wasm_rt_is_initialized()); + init_instance_import(instance, w2c_env_instance); + init_globals(instance); + init_tables(instance); + init_memories(instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE +#if !WASM_RT_SEGUE_FREE_SEGMENT + void* segue_saved_base = wasm_rt_segue_read_base(); +#endif + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + init_elem_instances(instance); + init_data_instances(instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE && !WASM_RT_SEGUE_FREE_SEGMENT + wasm_rt_segue_write_base(segue_saved_base); +#endif +} + +void wasm2c_highlights_free(w2c_highlights* instance) { + wasm_rt_free_funcref_table(&instance->w2c_T0); + wasm_rt_free_memory(&instance->w2c_memory); +} + +wasm_rt_func_type_t wasm2c_highlights_get_func_type(uint32_t param_count, uint32_t result_count, ...) { + va_list args; + + if (param_count == 1 && result_count == 1) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t0; + } + va_end(args); + } + + if (param_count == 0 && result_count == 0) { + va_start(args, result_count); + if (true) { + va_end(args); + return w2c_highlights_t1; + } + va_end(args); + } + + if (param_count == 2 && result_count == 1) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t2; + } + va_end(args); + } + + if (param_count == 1 && result_count == 0) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t3; + } + va_end(args); + } + + if (param_count == 2 && result_count == 0) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t4; + } + va_end(args); + } + + if (param_count == 0 && result_count == 1) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t5; + } + va_end(args); + } + + if (param_count == 3 && result_count == 0) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t6; + } + va_end(args); + } + + if (param_count == 3 && result_count == 1) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t7; + } + va_end(args); + } + + if (param_count == 4 && result_count == 1) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t8; + } + va_end(args); + } + + if (param_count == 5 && result_count == 1) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t9; + } + va_end(args); + } + + if (param_count == 4 && result_count == 0) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t10; + } + va_end(args); + } + + if (param_count == 5 && result_count == 0) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t11; + } + va_end(args); + } + + if (param_count == 2 && result_count == 1) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I64) { + va_end(args); + return w2c_highlights_t12; + } + va_end(args); + } + + if (param_count == 8 && result_count == 1) { + va_start(args, result_count); + if (true && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32 && va_arg(args, int) == WASM_RT_I32) { + va_end(args); + return w2c_highlights_t13; + } + va_end(args); + } + + return NULL; +} + +u32 w2c_highlights_f2(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = var_p0; + var_i0 += var_i1; + var_i1 = 4294967232u; + var_i0 -= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f3(w2c_highlights* instance) { + u32 var_l1 = 0; + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + v128 var_o0, var_o1, var_o2; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_o0; + var_i1 = 10u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l0; + var_i2 = 13u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l1 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f4(w2c_highlights* instance) { + u32 var_l1 = 0; + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + v128 var_o0, var_o1, var_o2; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 42u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_l0 = var_o0; + var_i0 = simde_wasm_v128_any_true(var_o0); + if (var_i0) { + var_o0 = var_l0; + var_i1 = instance->w2c_g4; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 47u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_and(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l1 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i1 = I32_CTZ(var_i1); + var_i2 = 2u; + var_i1 += var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B1; + } + } + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f5(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + v128 var_l5 = simde_wasm_i64x2_make(0, 0), var_l6 = simde_wasm_i64x2_make(0, 0), var_l7 = simde_wasm_i64x2_make(0, 0), var_l8 = simde_wasm_i64x2_make(0, 0), var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + v128 var_o0, var_o1, var_o2, var_o3; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } + var_i0 = var_p2; + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_l6 = var_o0; + var_i0 = 92u; + var_i1 = var_p2; + var_i2 = var_p3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_l7 = var_o0; + var_i0 = 10u; + var_i1 = var_p2; + var_i2 = var_p4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_l8 = var_o0; + var_i0 = 13u; + var_i1 = var_p2; + var_i2 = var_p4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_l9 = var_o0; + var_L1: + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_o0; + var_o1 = var_l6; + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l5; + var_o2 = var_l7; + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l5; + var_o2 = var_l8; + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l5; + var_o3 = var_l9; + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_p2 = var_i0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p2; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + var_p0 = var_i0; + goto var_B2; + } + var_i0 = var_p1; + var_i1 = var_p0; + var_i2 = 16u; + var_i1 += var_i2; + var_p0 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_L1;} + var_B2:; + var_i0 = var_p1; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = var_p1; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f6(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + v128 var_o0, var_o1, var_o2; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + goto var_Bfunc; + } + var_L4: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_o0; + var_i1 = 32u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l1; + var_i2 = 9u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_sub(var_o1, var_o2); + var_i2 = 4u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_u8x16_le(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_i1 = 65535u; + var_i0 ^= var_i1; + var_l0 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L4; + } + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f7(w2c_highlights* instance, u32 var_p0) { + u32 var_l2 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + v128 var_o0, var_o1, var_o2, var_o3, var_o4; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_L1: + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_o0; + var_i1 = 32u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i1 = 97u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_sub(var_o0, var_o1); + var_i1 = 25u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_u8x16_le(var_o0, var_o1); + var_o1 = var_l1; + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l1; + var_i2 = 48u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_sub(var_o1, var_o2); + var_i2 = 9u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_u8x16_le(var_o1, var_o2); + var_o2 = var_l1; + var_i3 = 95u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o3 = var_l1; + var_i4 = var_p0; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_i1 = 65535u; + var_i0 ^= var_i1; + var_l2 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B2; + } + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L1;} + var_B2:; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f8(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l5 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + v128 var_o0, var_o1, var_o2; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + goto var_Bfunc; + } + var_L1: + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_o0; + var_i1 = var_p1; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l4; + var_i2 = var_p2; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l4; + var_i2 = var_p3; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l5 = var_i0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l5; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + var_p0 = var_i0; + goto var_B2; + } + var_i0 = var_p0; + var_i1 = 16u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L1;} + var_B2:; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f9(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p1; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = var_p1; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + var_L0: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 192u; + var_i0 &= var_i1; + var_i1 = 128u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f10(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 += var_i1; + var_p1 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_p1 = var_i0; + } + var_L1: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 > var_i1; + var_i1 = var_l2; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L1; + var_B2:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f11(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_i2 = 4u; + var_i1 >>= (var_i2 & 31); + var_i2 = 7056u; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_i2 = 15u; + var_i1 &= var_i2; + var_i2 = 7056u; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f12(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g8; + var_i1 = 35u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_p0; + var_i1 = 255u; + var_i0 &= var_i1; + w2c_highlights_f11(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 255u; + var_i0 &= var_i1; + w2c_highlights_f11(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = 16u; + var_i0 >>= (var_i1 & 31); + var_i1 = 255u; + var_i0 &= var_i1; + w2c_highlights_f11(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = 24u; + var_i0 >>= (var_i1 & 31); + var_p0 = var_i0; + var_i1 = 255u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_p0; + w2c_highlights_f11(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f13(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + w2c_highlights_f12(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f14(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g8; + var_i1 = 7170u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 4u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = 14u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_p1; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = var_p1; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_p0; + var_i1 = 3u; + var_i0 *= var_i1; + var_i1 = 448u; + var_i0 += var_i1; + var_p1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 2u); + var_p0 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = var_p1; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_p0; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = 41u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f15(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g9; + var_i1 = instance->w2c_g8; + var_i2 = var_p0; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_i0 += var_i1; + var_i1 = 65551u; + var_i0 += var_i1; + var_i1 = instance->w2c_memory.pages; + var_i2 = 16u; + var_i1 <<= (var_i2 & 31); + var_i0 -= var_i1; + var_i1 = 16u; + var_i0 >>= (var_i1 & 31); + var_i1 = 4u; + var_i0 += var_i1; + var_i0 = wasm_rt_grow_memory(&instance->w2c_memory, var_i0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + UNREACHABLE; + } + var_i0 = instance->w2c_memory.pages; + var_i1 = 16u; + var_i0 <<= (var_i1 & 31); + var_i1 = 16u; + var_i0 -= var_i1; + instance->w2c_g9 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f16(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g8; + var_i1 = 4u; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g8; + var_i2 = 6u; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 -= var_i1; + var_i1 = var_p1; + var_i2 = instance->w2c_g0; + var_i1 -= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + goto var_Bfunc; + } + var_i0 = 16u; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = var_p1; + var_i2 = instance->w2c_g0; + var_i1 -= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f17(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + if (var_i0) { + var_i0 = 4294967295u; + instance->w2c_g21 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g21; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = 16u; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = instance->w2c_g21; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f18(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g8; + var_i1 = 6u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 4u; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g21 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f19(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p1; + var_i1 = instance->w2c_g34; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = var_p1; + instance->w2c_g34 = var_i0; + var_i0 = var_p0; + var_i1 = instance->w2c_g35; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 4294967295u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 -= var_i1; + var_i1 = var_p1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + goto var_Bfunc; + } + var_i0 = var_p0; + instance->w2c_g35 = var_i0; + var_i0 = 16u; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = var_p1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f20(w2c_highlights* instance, u32 var_p0) { + u32 var_l2 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + v128 var_o0, var_o1, var_o2; + var_L0: + var_i0 = instance->w2c_g2; + var_i1 = var_p0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_o0; + var_o1 = var_l1; + var_i2 = 10u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l2 = var_i0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l2; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + } else { + var_i0 = var_p0; + var_i1 = 16u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + } else { + var_i0 = var_p0; + } + var_p0 = var_i0; + var_i1 = instance->w2c_g2; + var_i2 = var_p0; + var_i3 = instance->w2c_g2; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f21(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, var_l9 = 0; + u64 var_l10 = 0, var_l11 = 0; + v128 var_l12 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j0, var_j1, var_j2, var_j3; + v128 var_o0, var_o1, var_o2; + var_i0 = var_p1; + var_i1 = var_p2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g20; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p2; + w2c_highlights_f16(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = instance->w2c_g19; + var_i1 = 4096u; + var_i2 = var_p2; + var_i3 = var_p1; + var_i2 -= var_i3; + var_l9 = var_i2; + var_l3 = var_i2; + var_i3 = var_l3; + var_i4 = 4096u; + var_i3 = var_i3 >= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = 5u; + var_i1 *= var_i2; + var_i0 += var_i1; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = instance->w2c_g10; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_p0; + instance->w2c_g10 = var_i0; + var_i0 = instance->w2c_g14; + if (var_i0) { + var_i0 = instance->w2c_g13; + if (var_i0) { + var_j0 = instance->w2c_g11; + var_j1 = 0ull; + var_i0 = var_j0 != var_j1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_j1 = 17572813333540668ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 7u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = var_p0; + var_j0 = (u64)(var_i0); + instance->w2c_g11 = var_j0; + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_p0; + w2c_highlights_f34(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } else { + var_j0 = instance->w2c_g11; + var_i0 = (u32)(var_j0); + var_l3 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + var_L8: + var_j0 = var_l10; + var_i1 = var_l5; + var_i2 = var_p0; + var_i1 = w2c_highlights_f24(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 1099511627775ull; + var_j1 &= var_j2; + var_l11 = var_j1; + var_j0 |= var_j1; + var_l10 = var_j0; + var_i0 = var_l3; + if (var_i0) { + var_i0 = var_l4; + var_j1 = var_l11; + var_i2 = var_l5; + var_i3 = var_l3; + var_i2 = w2c_highlights_f24(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 1099511627775ull; + var_j2 &= var_j3; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_l4 = var_i0; + } + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + var_i1 = instance->w2c_g16; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L8;} + var_i0 = var_l3; + if (var_i0) { + var_i0 = var_l4; + var_j1 = var_l10; + var_j2 = 0ull; + var_i1 = var_j1 != var_j2; + var_i0 &= var_i1; + if (var_i0) {goto var_B7;} + var_i0 = instance->w2c_g8; + var_j1 = 17572813333540668ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 7u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_j0 = var_l10; + var_i0 = !(var_j0); + if (var_i0) { + var_j0 = 0ull; + instance->w2c_g11 = var_j0; + goto var_B7; + } + var_i0 = var_p0; + var_j0 = (u64)(var_i0); + instance->w2c_g11 = var_j0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_l3 = var_i0; + var_i1 = 7216u; + var_i0 += var_i1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 7362u; + var_i0 += var_i1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 7512u; + var_i0 += var_i1; + var_i1 = var_l4; + w2c_highlights_f31(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B12; + } + var_i0 = 7212u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 7512u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = instance->w2c_g19; + var_i1 = 7212u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 += var_i1; + var_i1 = 4520u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_l5 = var_i0; + var_i0 = var_l4; + instance->w2c_g8 = var_i0; + } + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = 7103u; + var_i2 = 13u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 13u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g15; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + if (var_i0) { + var_i0 = 0u; + var_i1 = var_p0; + var_i0 = w2c_highlights_f24(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = 1u; + var_i1 = var_p0; + var_i0 = w2c_highlights_f24(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i0 = var_l7; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = var_l8; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l6 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + var_i1 = 72u; + var_i0 = w2c_highlights_f24(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + } + var_i0 = var_l6; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 1u; + var_i1 = 72u; + var_i0 = w2c_highlights_f24(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + } + var_i0 = instance->w2c_g8; + var_i1 = 7116u; + var_i2 = 6u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 6u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_l3; + var_i1 = var_l6; + var_i2 = 0u; + w2c_highlights_f30(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = var_l7; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l6 = var_i0; + var_i1 = var_l8; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_l7 = var_i1; + var_i0 &= var_i1; + var_i1 = 16u; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = var_l6; + var_i1 = 15u; + var_i0 &= var_i1; + var_l8 = var_i0; + var_i1 = var_l7; + var_i2 = 15u; + var_i1 &= var_i2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_l8; + var_i0 |= var_i1; + var_l3 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = 0u; + w2c_highlights_f28(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = var_l6; + var_i2 = var_l3; + var_i3 = 4294967295u; + var_i2 ^= var_i3; + var_l3 = var_i2; + var_i1 &= var_i2; + var_i2 = 1u; + w2c_highlights_f28(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l3; + var_i2 = var_l7; + var_i1 &= var_i2; + var_i2 = 1u; + w2c_highlights_f28(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_L20: + var_i0 = var_l3; + var_i1 = var_l3; + var_i2 = var_p0; + var_i1 = w2c_highlights_f24(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i1; + w2c_highlights_f27(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = var_l6; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = var_l3; + var_i2 = w2c_highlights_f25(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 8u); + var_i2 = !(var_i2); + w2c_highlights_f28(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = instance->w2c_g16; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L20;} + } + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = 15906u; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_l3 = var_i0; + var_i1 = 7216u; + var_i0 += var_i1; + var_i1 = instance->w2c_g8; + var_i2 = var_l4; + var_i1 -= var_i2; + var_p0 = var_i1; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l3; + var_i1 = 7362u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i2 = 7512u; + var_i1 -= var_i2; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 7212u; + var_i1 = 7212u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_p0; + var_i1 += var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l5; + instance->w2c_g8 = var_i0; + var_i0 = var_l4; + var_i1 = var_p0; + w2c_highlights_f31(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_B12:; + var_B7:; + } + goto var_B2; + } + var_i0 = instance->w2c_g12; + if (var_i0) { + var_i0 = var_p0; + var_j0 = (u64)(var_i0); + } else { + var_i0 = var_p0; + var_i0 = w2c_highlights_f2(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 1099511627775ull; + var_j0 &= var_j1; + } + var_l10 = var_j0; + var_j0 = var_l10; + var_j1 = instance->w2c_g11; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B2;} + var_j0 = instance->w2c_g11; + var_j1 = 0ull; + var_i0 = var_j0 != var_j1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_j1 = 17572813333540668ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 7u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_j0 = var_l10; + instance->w2c_g11 = var_j0; + var_j0 = var_l10; + var_j1 = 0ull; + var_i0 = var_j0 != var_j1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 66u; + var_i0 *= var_i1; + var_i1 = 7208u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g8 = var_i1; + var_i1 = instance->w2c_g8; + var_i2 = 7103u; + var_i3 = 19u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + var_i1 = instance->w2c_g8; + var_i2 = 19u; + var_i1 += var_i2; + instance->w2c_g8 = var_i1; + var_i1 = instance->w2c_g12; + if (var_i1) { + var_i1 = var_p0; + var_i2 = 0u; + w2c_highlights_f14(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i1 = var_p0; + var_i1 = w2c_highlights_f2(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + if (var_i1) { + var_i1 = var_p0; + w2c_highlights_f13(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i1 = instance->w2c_g8; + var_j2 = 32767037346967145ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1), var_j2); + var_i1 = instance->w2c_g8; + var_i2 = 7u; + var_i1 += var_i2; + instance->w2c_g8 = var_i1; + } + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_p0 = var_i1; + var_i2 = 16u; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = instance->w2c_g8; + var_i2 = 7139u; + var_i3 = 18u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + var_i1 = instance->w2c_g8; + var_i2 = 18u; + var_i1 += var_i2; + instance->w2c_g8 = var_i1; + } + var_i1 = var_p0; + var_i2 = 15u; + var_i1 &= var_i2; + var_p0 = var_i1; + if (var_i1) { + var_i1 = instance->w2c_g8; + var_i2 = 7157u; + var_i3 = 13u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + var_i1 = instance->w2c_g8; + var_i2 = 13u; + var_i1 += var_i2; + instance->w2c_g8 = var_i1; + var_i1 = instance->w2c_g8; + var_i2 = var_p0; + var_i3 = 48u; + var_i2 += var_i3; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1), var_i2); + var_i1 = instance->w2c_g8; + var_i2 = 12336u; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u, var_i2); + var_i1 = instance->w2c_g8; + var_i2 = 3u; + var_i1 += var_i2; + instance->w2c_g8 = var_i1; + } + } + var_i1 = instance->w2c_g8; + var_i2 = 15906u; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1), var_i2); + var_i1 = instance->w2c_g8; + var_i2 = 2u; + var_i1 += var_i2; + instance->w2c_g8 = var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g8; + var_i3 = var_l3; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 -= var_i3; + var_l4 = var_i2; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1), var_i2); + instance->w2c_g8 = var_i0; + } + var_i0 = instance->w2c_g12; + if (var_i0) { + var_i0 = 18u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = 23u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 23u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = 14u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_p0; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = var_l3; + var_i2 = 24u; + var_i1 += var_i2; + var_i2 = var_l4; + var_i3 = 23u; + var_i2 -= var_i3; + var_p0 = var_i2; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_p0; + var_i1 = instance->w2c_g8; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + goto var_B25; + } + var_i0 = instance->w2c_g8; + var_i1 = var_l3; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_o1); + var_i0 = instance->w2c_g8; + var_i1 = var_l3; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 17u); + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u, var_o1); + var_i0 = instance->w2c_g8; + var_i1 = var_l3; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 33u); + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u, var_o1); + var_i0 = instance->w2c_g8; + var_i1 = var_l3; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 49u); + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 48u, var_o1); + var_i0 = instance->w2c_g8; + var_i1 = var_l4; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_B25:; + } + var_B2:; + var_i0 = instance->w2c_g8; + var_l3 = var_i0; + var_i0 = var_p2; + var_i1 = var_p1; + var_i2 = 4096u; + var_i1 += var_i2; + var_i2 = var_l9; + var_i3 = 4096u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + var_L32: + var_i0 = var_p1; + var_i1 = var_p2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_l3; + instance->w2c_g8 = var_i0; + var_i0 = var_p2; + var_i1 = var_p1; + var_i2 = 4096u; + var_i1 += var_i2; + var_i2 = var_p2; + var_i3 = var_p1; + var_i2 -= var_i3; + var_i3 = 4096u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + var_i1 = var_p1; + var_i0 -= var_i1; + var_i1 = 5u; + var_i0 *= var_i1; + var_i1 = 16u; + var_i0 += var_i1; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_L35: + var_i0 = var_l3; + var_i1 = var_p1; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l12 = var_o1; + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_o1); + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 -= var_i1; + var_l4 = var_i0; + var_o0 = var_l12; + var_i1 = 4294967293u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_v128_and(var_o0, var_o1); + var_i1 = 60u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l12; + var_i2 = 38u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l5 = var_i0; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_l5; + var_i1 = I32_CTZ(var_i1); + var_l5 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_l5; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_p1; + var_i1 = var_l5; + var_i0 += var_i1; + var_p1 = var_i0; + goto var_B36; + } + } + var_i0 = var_l4; + var_i1 = 16u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_l4; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_p0; + var_p1 = var_i0; + goto var_L32; + } else { + var_i0 = var_l3; + var_i1 = 16u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_p1; + var_i1 = 16u; + var_i0 += var_i1; + var_p1 = var_i0; + goto var_L35; + } + UNREACHABLE; + var_B36:; + var_i0 = var_p1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_j1 = 255289286950ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = var_l3; + var_i1 = 5u; + var_i0 += var_i1; + } else { + var_i0 = var_l4; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 997485606u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } else { + var_i0 = var_l3; + var_i1 = 997484326u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = var_l3; + var_i1 = 4u; + var_i0 += var_i1; + } + var_l3 = var_i0; + var_i0 = var_p1; + var_i1 = 1u; + var_i0 += var_i1; + var_p1 = var_i0; + goto var_L32; + } + var_i0 = var_l3; + instance->w2c_g8 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f22(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + v128 var_o1; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g20; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 6u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 -= var_i1; + var_i1 = var_p1; + var_i2 = instance->w2c_g0; + var_i1 -= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } else { + var_i0 = 0u; + var_i1 = var_p1; + w2c_highlights_f16(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p1 = var_i0; + var_i1 = 16u; + var_i0 += var_i1; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + var_i1 = 16u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_o1); + } else { + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_i2 = var_p1; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + } + var_i0 = instance->w2c_g8; + var_i1 = var_p1; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f23(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = w2c_highlights_f9(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f24(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g17; + var_i1 = var_p0; + var_i2 = 384u; + var_i1 *= var_i2; + var_i0 += var_i1; + var_i1 = var_p1; + var_i2 = 5u; + var_i1 *= var_i2; + var_i0 += var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f25(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g15; + var_i1 = var_p0; + var_i2 = 4u; + var_i1 <<= (var_i2 & 31); + var_i2 = 32u; + var_i1 += var_i2; + var_i0 += var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f26(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f25(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_p0 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = instance->w2c_g15; + var_i2 = var_l1; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i1 += var_i2; + var_i2 = var_p0; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f27(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p1 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f25(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 7116u; + var_i2 = 6u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 6u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } else { + var_i0 = var_p0; + w2c_highlights_f26(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 58u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = var_p1; + w2c_highlights_f12(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f28(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p1; + var_i1 = 16u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_p0; + w2c_highlights_f26(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 45u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = instance->w2c_g8; + var_i1 = 7140u; + var_i2 = 17u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 17u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 18u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = var_p1; + var_i1 = 15u; + var_i0 &= var_i1; + var_p1 = var_i0; + if (var_i0) { + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_p0; + w2c_highlights_f26(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 45u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = instance->w2c_g8; + var_i1 = 7158u; + var_i2 = 12u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = var_p1; + var_i2 = 48u; + var_i1 += var_i2; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 12336u; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 13u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 15u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f29(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + u64 var_j1; + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_p0; + w2c_highlights_f12(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_p1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_j1 = 8241992434140148340ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 7630437u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 11u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } else { + var_i0 = instance->w2c_g8; + var_j1 = 7166474289044157795ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 1919904879u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 12u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f30(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + w2c_highlights_f12(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = instance->w2c_g8; + var_i1 = 7195u; + var_i2 = 11u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 11u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_p0; + var_i1 = var_p2; + w2c_highlights_f29(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 8236u; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_p1; + var_i1 = var_p2; + w2c_highlights_f29(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 41u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f31(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + v128 var_o1; + var_L0: + var_i0 = instance->w2c_g8; + var_i1 = var_l2; + var_i0 += var_i1; + var_i1 = var_p0; + var_i2 = var_l2; + var_i1 += var_i2; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_o1); + var_i0 = var_l2; + var_i1 = 16u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = var_p1; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L0;} + var_i0 = instance->w2c_g8; + var_i1 = var_p1; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f32(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 71u; + var_i0 = w2c_highlights_f24(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f25(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 7122u; + var_i2 = 17u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 17u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } else { + var_i0 = var_l1; + w2c_highlights_f26(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 979853869u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 4u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = var_l2; + w2c_highlights_f13(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + } else { + var_i0 = var_l1; + var_i1 = var_l1; + var_i2 = 72u; + var_i1 = w2c_highlights_f24(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f27(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i1 = instance->w2c_g16; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L0;} + FUNC_EPILOGUE; +} + +void w2c_highlights_f33(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j0, var_j1; + v128 var_o0, var_o1, var_o2, var_o3; + var_i0 = 1u; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + instance->w2c_g12 = var_i0; + var_i0 = 1u; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + instance->w2c_g20 = var_i0; + var_i0 = 14u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 0u; + var_i2 = 1u; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g13 = var_i0; + var_i0 = instance->w2c_g13; + var_i1 = 1u; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + instance->w2c_g14 = var_i0; + var_i0 = instance->w2c_g0; + var_i1 = 2u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 += var_i1; + instance->w2c_g2 = var_i0; + var_i0 = instance->w2c_g2; + instance->w2c_g3 = var_i0; + var_i0 = instance->w2c_g0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g2; + var_i1 = 47u; + var_i0 += var_i1; + var_i1 = 4294967280u; + var_i0 &= var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g12; + var_i1 = instance->w2c_g14; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 18u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = 6u; + var_i1 = instance->w2c_g8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_memory.pages; + var_i1 = 16u; + var_i0 <<= (var_i1 & 31); + var_i1 = 16u; + var_i0 -= var_i1; + instance->w2c_g9 = var_i0; + var_i0 = 4294967295u; + instance->w2c_g10 = var_i0; + var_j0 = 0ull; + instance->w2c_g11 = var_j0; + var_i0 = 18u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 0u; + var_i2 = instance->w2c_g12; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 96u; + var_i0 += var_i1; + instance->w2c_g19 = var_i0; + var_i0 = instance->w2c_g13; + if (var_i0) { + var_i0 = instance->w2c_g13; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g19 = var_i0; + var_i0 = instance->w2c_g13; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + w2c_highlights_f34(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = instance->w2c_g14; + if (var_i0) { + var_i0 = 14u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g15 = var_i0; + var_i0 = instance->w2c_g15; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g16 = var_i0; + var_i0 = instance->w2c_g15; + var_i1 = instance->w2c_g15; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i0 += var_i1; + instance->w2c_g17 = var_i0; + var_i0 = instance->w2c_g15; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + instance->w2c_g19 = var_i0; + var_i0 = 2u; + instance->w2c_g18 = var_i0; + var_i0 = 7208u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = instance->w2c_g15; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 16u); + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 7208u; + var_i1 = 0u; + var_i2 = 304u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 7208u; + var_i1 = instance->w2c_g15; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 16u); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = instance->w2c_g15; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 7072u; + var_i2 = 31u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 31u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g15; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + if (var_i0) { + var_i0 = 0u; + var_i1 = 71u; + var_i0 = w2c_highlights_f24(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 1u; + var_i2 = 71u; + var_i1 = w2c_highlights_f24(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l1 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 7122u; + var_i2 = 17u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 17u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = 1u; + w2c_highlights_f30(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = 0u; + var_i1 = 72u; + var_i0 = w2c_highlights_f24(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 1u; + var_i2 = 72u; + var_i1 = w2c_highlights_f24(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l1 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 7116u; + var_i2 = 6u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 6u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = 0u; + w2c_highlights_f30(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + } else { + var_i0 = 0u; + var_i0 = w2c_highlights_f25(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f32(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + w2c_highlights_f32(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + w2c_highlights_f32(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + w2c_highlights_f32(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g8 = var_i0; + } + var_i0 = instance->w2c_g8; + var_i1 = 7174u; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g20; + var_i0 = !(var_i0); + if (var_i0) { + var_L10: + var_o0 = var_l3; + var_i1 = var_l0; + var_i2 = 4294967232u; + var_i1 -= var_i2; + var_l1 = var_i1; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_l0; + var_i3 = 12032u; + var_i2 += var_i3; + var_l2 = var_i2; + var_o2 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_o1 = simde_wasm_v128_xor(var_o1, var_o2); + var_i2 = var_l1; + var_o2 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 16u); + var_i3 = var_l2; + var_o3 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 16u); + var_o2 = simde_wasm_v128_xor(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_l3 = var_o0; + var_i0 = var_l0; + var_i1 = 32u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = 384u; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L10;} + var_o0 = var_l3; + var_i0 = simde_wasm_v128_any_true(var_o0); + var_i1 = instance->w2c_g18; + var_i2 = instance->w2c_g12; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 7208u; + var_i1 = 0u; + var_i2 = 4818u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 12032u; + var_i1 = 64u; + var_i2 = 384u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g12; + instance->w2c_g18 = var_i0; + } + var_i0 = 128u; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g12; + if (var_i0) { + var_i0 = 18u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_i1 = 128u; + var_i0 += var_i1; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g8; + var_i1 = 7072u; + var_i2 = 31u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 31u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = 71u; + var_i0 = w2c_highlights_f2(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g12; + var_i1 = var_l0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 7122u; + var_i2 = 17u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 17u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g12; + if (var_i0) { + var_i0 = 71u; + var_i1 = 18u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + w2c_highlights_f14(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l0; + w2c_highlights_f13(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = 72u; + var_i0 = w2c_highlights_f2(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g12; + var_i1 = var_l0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_j1 = 64263170060131ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 6u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = instance->w2c_g12; + if (var_i0) { + var_i0 = 72u; + var_i1 = 18u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + w2c_highlights_f14(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 59u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } else { + var_i0 = var_l0; + w2c_highlights_f13(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_i0 = instance->w2c_g8; + var_i1 = 7174u; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f34(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g13; + var_i1 = var_p0; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i2 = 4u; + var_i1 += var_i2; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_p0 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = instance->w2c_g13; + var_i2 = var_l1; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i1 += var_i2; + var_i2 = var_p0; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f35(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0; + v128 var_l10 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j0, var_j1; + v128 var_o0, var_o1, var_o2, var_o3, var_o4; + var_i0 = instance->w2c_g20; + var_i0 = !(var_i0); + if (var_i0) { + var_j0 = instance->w2c_g11; + var_j1 = 0ull; + var_i0 = var_j0 != var_j1; + if (var_i0) { + var_i0 = 16u; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_j1 = 17572813333540668ull; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = instance->w2c_g8; + var_i1 = 7u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_j0 = 0ull; + instance->w2c_g11 = var_j0; + var_i0 = 4294967295u; + instance->w2c_g10 = var_i0; + var_i0 = 32u; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = 7182u; + var_i2 = 13u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g8; + var_i1 = 13u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + } + var_i0 = instance->w2c_g20; + if (var_i0) { + var_i0 = 6u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = instance->w2c_g8; + var_l9 = var_i0; + var_i1 = 15u; + var_i0 += var_i1; + var_i1 = 4294967280u; + var_i0 &= var_i1; + instance->w2c_g8 = var_i0; + var_i0 = 6u; + var_i1 = instance->w2c_g8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 4294967295u; + var_l3 = var_i0; + var_i0 = instance->w2c_g0; + var_l1 = var_i0; + var_i0 = w2c_highlights_f20(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_L3: + var_i0 = var_l6; + var_i1 = var_l9; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g0; + var_i1 = var_l6; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 += var_i1; + var_l5 = var_i0; + var_i0 = var_l6; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l7 = var_i0; + var_i0 = var_l6; + var_i1 = 8u; + var_i0 += var_i1; + var_l6 = var_i0; + var_i0 = var_l1; + var_i1 = var_l5; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_L3;} + var_L5: + var_i0 = var_l1; + var_i1 = var_l5; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B6;} + var_i0 = var_l0; + var_i1 = var_l5; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l5; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_l5; + var_l1 = var_i0; + goto var_B6; + } + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_l0; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + instance->w2c_g34 = var_i0; + var_i0 = var_l3; + instance->w2c_g35 = var_i0; + var_i0 = var_l2; + var_l3 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 13u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g0; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = instance->w2c_g35; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 -= var_i2; + var_l3 = var_i1; + var_i2 = instance->w2c_g34; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i1 = 6u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 8u; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + } + var_i0 = var_l3; + var_i1 = var_l4; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g8 = var_i0; + var_i0 = var_l4; + instance->w2c_g34 = var_i0; + var_i0 = 4294967295u; + instance->w2c_g35 = var_i0; + var_i0 = var_l0; + var_i1 = 6u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 4u; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g35 = var_i0; + } + } else { + var_i0 = var_l0; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l3; + instance->w2c_g34 = var_i0; + } + var_B10:; + } + var_i0 = var_l7; + var_i1 = var_l3; + w2c_highlights_f19(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 += var_i2; + var_l2 = var_i1; + w2c_highlights_f19(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g34; + var_l4 = var_i0; + var_i0 = instance->w2c_g35; + var_l3 = var_i0; + } else { + var_L14: + var_i0 = var_l1; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_o0; + var_i1 = 10u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_i1 = 65536u; + var_i0 |= var_i1; + var_i0 = I32_CTZ(var_i0); + var_l0 = var_i0; + var_i1 = var_l5; + var_i2 = var_l1; + var_i1 -= var_i2; + var_l8 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l8; + var_l0 = var_i0; + } + var_i0 = var_l2; + var_i1 = 1u; + var_i2 = var_l0; + var_i1 <<= (var_i2 & 31); + var_i2 = 1u; + var_i1 -= var_i2; + var_l8 = var_i1; + var_o2 = var_l10; + var_i3 = 4294967231u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_gt(var_o2, var_o3); + var_i2 = v128_i8x16_bitmask(var_o2); + var_i1 &= var_i2; + var_i1 = I32_POPCNT(var_i1); + var_i2 = var_l8; + var_o3 = var_l10; + var_i4 = 4294967280u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_u8x16_ge(var_o3, var_o4); + var_i3 = v128_i8x16_bitmask(var_o3); + var_i2 &= var_i3; + var_i2 = I32_POPCNT(var_i2); + var_i1 += var_i2; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 16u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_L14;} + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f20(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + goto var_L5; + var_B6:; + var_i0 = var_l2; + var_i1 = var_l4; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_l7; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 -= var_i1; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } else { + var_i0 = 16u; + w2c_highlights_f15(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g8; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g8; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = instance->w2c_g8; + var_i1 = 8u; + var_i0 += var_i1; + instance->w2c_g8 = var_i0; + var_i0 = var_l7; + var_l3 = var_i0; + } + var_i0 = var_l2; + var_l4 = var_i0; + } + goto var_L3; + } + } + var_i0 = 10u; + var_i1 = instance->w2c_g8; + var_i2 = 6u; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i1 -= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + FUNC_EPILOGUE; +} + +void w2c_highlights_f36(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + instance->w2c_g36 = var_i0; + var_i0 = 0u; + instance->w2c_g37 = var_i0; + var_i0 = 0u; + instance->w2c_g38 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = 0u; + instance->w2c_g40 = var_i0; + var_i0 = 0u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f37(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g36; + var_i1 = 32u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g37; + var_i1 = instance->w2c_g36; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f38(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g36; + var_i1 = 32u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g37; + var_i1 = 1u; + var_i2 = instance->w2c_g36; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + instance->w2c_g37 = var_i0; + } + var_i0 = 0u; + instance->w2c_g38 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = 0u; + instance->w2c_g40 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f39(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g36; + var_i1 = 32u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g37; + var_i1 = 4294967294u; + var_i2 = instance->w2c_g36; + var_i1 = I32_ROTL(var_i1, var_i2); + var_i0 &= var_i1; + instance->w2c_g37 = var_i0; + } + var_i0 = 0u; + instance->w2c_g38 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = 0u; + instance->w2c_g40 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f40(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g40; + var_i1 = var_p0; + var_i0 -= var_i1; + var_i1 = 0u; + var_i2 = instance->w2c_g40; + var_i3 = var_p0; + var_i2 = var_i2 >= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g40 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f41(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g42; + var_i1 = var_p0; + var_i0 -= var_i1; + var_i1 = 0u; + var_i2 = instance->w2c_g42; + var_i3 = var_p0; + var_i2 = var_i2 >= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g42 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f42(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g42; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g42 = var_i0; + } else { + var_i0 = var_l2; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f41(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g42; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + } + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f43(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f44(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 <= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f45(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f46(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 128u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f47(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f48(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 8192u; + var_i0 |= var_i1; + var_i1 = 30768u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + w2c_highlights_f49(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f49(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l1; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + var_i0 = var_l1; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = var_l1; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i1 = !(var_i1); + var_i2 = var_l2; + var_i3 = 32u; + var_i2 |= var_i3; + var_l2 = var_i2; + var_i3 = 101u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l2; + var_i3 = 112u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_B1:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f50(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 48u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 120u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l1 = var_i1; + var_i1 = w2c_highlights_f45(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 32u; + var_i2 |= var_i3; + var_i3 = 112u; + var_i2 = var_i2 == var_i3; + var_l1 = var_i2; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_L3: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = w2c_highlights_f45(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B4;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 112u; + var_i0 = var_i0 != var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_p0; + var_i2 = var_p0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_p0 = var_i2; + var_i3 = 43u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + } + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i0 |= var_i1; + if (var_i0) { + goto var_Bfunc; + } + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + w2c_highlights_f49(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f51(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = var_l2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l1; + } + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f52(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 1u; + var_i4 = var_p1; + var_i4 = !(var_i4); + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + goto var_B1; + } + var_i0 = var_l5; + var_i1 = 92u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p2; + var_i1 = var_p3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l4 = var_i2; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l4; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = instance->w2c_g4; + var_i4 = var_p3; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + var_i3 = instance->w2c_g4; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_p3 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p2; + var_i1 = var_p3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f53(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = var_l3; + var_i0 = w2c_highlights_f52(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = var_p1; + var_i2 = var_l3; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 1u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g2; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + instance->w2c_g25 = var_i0; + var_i0 = var_p0; + instance->w2c_g26 = var_i0; + var_i0 = var_p1; + instance->w2c_g27 = var_i0; + var_i0 = var_p2; + instance->w2c_g29 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f54(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 0u; + var_i4 = var_p1; + var_i4 = !(var_i4); + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p2; + var_i1 = var_p3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p2; + var_i1 = var_p3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f55(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = var_l3; + var_i0 = w2c_highlights_f54(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = var_p1; + var_i2 = var_l3; + var_i2 = !(var_i2); + var_i3 = instance->w2c_g4; + var_i4 = instance->w2c_g2; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 3u; + instance->w2c_g25 = var_i0; + var_i0 = var_p0; + instance->w2c_g26 = var_i0; + var_i0 = var_p1; + instance->w2c_g27 = var_i0; + var_i0 = var_p2; + instance->w2c_g29 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f56(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p3; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_i0 = 1u; + var_l6 = var_i0; + goto var_B1; + } + var_i0 = var_l4; + var_i1 = 92u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p1; + var_i1 = var_p2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i1 = 2u; + var_i0 += var_i1; + var_p2 = var_i0; + var_i0 = var_l4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = var_l4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i1 = 117u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = 4u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + goto var_B5; + } + var_i0 = var_l5; + var_i1 = 85u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = 8u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + goto var_B5; + } + var_i0 = var_l5; + var_i1 = 120u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = 64u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + goto var_B5; + } + var_i0 = var_p2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p2; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i2 = 78u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = 1u; + var_i0 += var_i1; + var_p2 = var_i0; + var_L10: + var_i0 = var_p2; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_p2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l4; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = 92u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l4; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_p2; + var_i1 = 1u; + var_i0 += var_i1; + var_p2 = var_i0; + var_i0 = var_l4; + var_i1 = 125u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_L10;} + goto var_B5; + } + var_i0 = var_l5; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 7u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_L12: + var_i0 = var_p2; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + var_i1 = var_p2; + var_i2 = var_l4; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_p2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 7u; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_p2; + var_i1 = 1u; + var_i0 += var_i1; + var_p2 = var_i0; + goto var_L12; + UNREACHABLE; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + var_B5:; + var_i0 = var_p2; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_p2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_L0;} + var_i0 = 2u; + var_l6 = var_i0; + var_B1:; + var_i0 = var_p1; + var_i1 = var_p2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f57(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 44u; + var_i4 = var_l0; + var_i5 = 0u; + var_i2 = w2c_highlights_f56(instance, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f58(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g0; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_p0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l1; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_L0;} + var_i0 = var_l1; + goto var_Bfunc; + var_B1:; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f59(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 0u; + var_i2 = var_p0; + var_i3 = 44u; + var_i4 = instance->w2c_g4; + var_i5 = 0u; + var_i2 = w2c_highlights_f56(instance, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 0u; + } + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f60(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f61(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + w2c_highlights_f4(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 -= var_i2; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 12074u; + var_i1 = var_i1 != var_i2; + var_i2 = instance->w2c_g4; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 2u; + var_i2 = var_i2 < var_i3; + var_i1 |= var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g2; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g25 = var_i0; + var_i0 = var_p1; + instance->w2c_g29 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f62(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i2 = var_p1; + var_i3 = 32u; + var_i2 = var_i2 <= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12416u; + var_i1 = var_p0; + var_i2 = var_p1; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 20u; + instance->w2c_g25 = var_i0; + var_i0 = var_p1; + instance->w2c_g26 = var_i0; + var_i0 = 0u; + instance->w2c_g27 = var_i0; + var_i0 = var_p2; + instance->w2c_g29 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f63(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 12416u; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12416u; + var_i1 = var_p1; + var_i2 = var_p2; + w2c_highlights_f62(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f64(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 21u; + instance->w2c_g25 = var_i0; + var_i0 = var_p0; + instance->w2c_g26 = var_i0; + var_i0 = var_p1; + instance->w2c_g27 = var_i0; + var_i0 = var_p2; + instance->w2c_g28 = var_i0; + var_i0 = var_p3; + instance->w2c_g29 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f65(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_L1: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B2;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L1; + var_B2:; + var_i0 = var_p0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 44u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_p0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i4 = 35u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_p0; + var_i4 = 41u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f66(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 4u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 > var_i1; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f67(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i2 = var_p1; + var_i3 = 32u; + var_i2 = var_i2 <= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12416u; + var_i1 = var_p0; + var_i2 = var_p1; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 22u; + instance->w2c_g25 = var_i0; + var_i0 = var_p1; + instance->w2c_g26 = var_i0; + var_i0 = var_p2; + instance->w2c_g27 = var_i0; + var_i0 = var_p3; + instance->w2c_g29 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f68(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + instance->w2c_g30 = var_i0; + var_i0 = 0u; + instance->w2c_g31 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f69(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L0: + var_i0 = var_l0; + var_i1 = 12416u; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = var_l0; + var_i2 = instance->w2c_g26; + var_i1 += var_i2; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_B1;} + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_L2: + var_i1 = instance->w2c_g26; + var_i2 = var_l1; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_l1; + var_i3 = 12416u; + var_i2 += var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i1 = var_i1 != var_i2; + if (var_i1) { + var_i1 = 0u; + } else { + var_i1 = var_l1; + var_i2 = 1u; + var_i1 += var_i2; + var_l1 = var_i1; + goto var_L2; + } + } else { + var_i1 = 1u; + } + var_i2 = instance->w2c_g27; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l0; + var_i4 = var_l2; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + var_i3 = instance->w2c_g27; + var_i4 = var_l0; + var_i5 = 1u; + var_i4 -= var_i5; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = instance->w2c_g26; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g29; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + goto var_Bfunc; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L0; + } + UNREACHABLE; + var_B1:; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g29; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f70(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + v128 var_l3 = simde_wasm_i64x2_make(0, 0), var_l4 = simde_wasm_i64x2_make(0, 0), var_l5 = simde_wasm_i64x2_make(0, 0), var_l6 = simde_wasm_i64x2_make(0, 0), var_l7 = simde_wasm_i64x2_make(0, 0), var_l8 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + v128 var_o0, var_o1, var_o2, var_o3; + var_i0 = var_p1; + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_l3 = var_o0; + var_i0 = var_p1; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_l4 = var_o0; + var_i0 = var_p2; + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_l5 = var_o0; + var_i0 = var_p2; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_l6 = var_o0; + var_L0: + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_o0; + var_o1 = var_l3; + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_i1 = instance->w2c_g4; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_l8 = var_o1; + var_o2 = var_l4; + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_and(var_o0, var_o1); + var_o1 = var_l7; + var_o2 = var_l5; + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l8; + var_o3 = var_l6; + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_and(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_p2 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_p2; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L2; + } + } + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B1; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_p0 = var_i0; + if (var_i0) {goto var_L0;} + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f71(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_i0 = 1u; + var_i1 = var_p0; + var_i2 = var_p1; + var_i0 = w2c_highlights_f70(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p2; + var_i2 = var_l3; + var_i3 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = var_p1; + var_i3 = var_p2; + w2c_highlights_f64(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f72(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g25; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f4(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g29; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 -= var_i1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 12074u; + var_i0 = var_i0 != var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 < var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g25; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g26; + var_i1 = instance->w2c_g27; + var_i2 = instance->w2c_g29; + var_i3 = var_l0; + var_i0 = w2c_highlights_f52(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g25; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g26; + var_i1 = instance->w2c_g27; + var_i2 = instance->w2c_g29; + var_i3 = var_l0; + var_i0 = w2c_highlights_f54(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = 0u; + instance->w2c_g25 = var_i0; + } + var_i0 = instance->w2c_g25; + var_i1 = 20u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f69(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = instance->w2c_g25; + var_i1 = 21u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g26; + var_i1 = instance->w2c_g27; + var_i2 = instance->w2c_g28; + var_i0 = w2c_highlights_f70(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g26 = var_i0; + var_i0 = instance->w2c_g29; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g26; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + goto var_B8; + } + var_i0 = 1u; + var_B8:; + goto var_Bfunc; + } + var_i0 = instance->w2c_g25; + var_i1 = 22u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_L12: + var_i0 = instance->w2c_g3; + var_i1 = var_l1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l1; + var_l0 = var_i0; + var_i0 = instance->w2c_g27; + var_i1 = 3u; + var_i0 &= var_i1; + if (var_i0) { + var_L15: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g27; + var_i2 = 3u; + var_i1 &= var_i2; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B16;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L15; + var_B16:; + } + var_i0 = instance->w2c_g3; + var_i1 = var_l0; + var_i2 = instance->w2c_g26; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_L17: + var_i0 = var_l2; + var_i0 = !(var_i0); + var_i1 = var_l3; + var_i2 = instance->w2c_g26; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + } else { + var_i0 = var_l0; + var_i1 = var_l3; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l3; + var_i2 = 12416u; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L17; + } + } + var_l2 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_i1 = instance->w2c_g26; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g27; + var_i2 = w2c_highlights_f66(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = instance->w2c_g27; + var_i1 = 12u; + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = instance->w2c_g29; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + goto var_B11; + } + } + var_L25: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B26;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B26;} + var_i0 = var_l0; + var_i1 = 13u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_L25;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l1; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_B26:; + goto var_L12; + } + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g29; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_B11:; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f73(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f74(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0, var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + u64 var_j0, var_j1; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_L0: + var_i0 = var_p1; + var_i1 = var_l2; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_l2; + var_i1 = 6u; + var_i0 += var_i1; + var_i1 = var_p1; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_l2; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 28539428140183145ull; + var_j0 ^= var_j1; + var_j1 = 8ull; + var_j0 <<= (var_j1 & 63); + var_i0 = !(var_j0); + if (var_i0) { + var_i0 = var_l2; + var_i1 = 7u; + var_i0 += var_i1; + } else { + var_i0 = var_l2; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 128034844732777ull; + var_j0 ^= var_j1; + var_j1 = 16ull; + var_j0 <<= (var_j1 & 63); + var_i0 = !(var_j0); + var_i0 = !(var_i0); + if (var_i0) {goto var_B2;} + var_i0 = var_l2; + var_i1 = 6u; + var_i0 += var_i1; + } + var_l2 = var_i0; + var_i1 = var_p1; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p1; + var_i2 = var_l2; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B2;} + var_L4: + var_i0 = var_p1; + var_i1 = var_l2; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L4; + var_B5:; + var_i0 = var_p1; + var_i1 = var_l2; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 62u; + } else { + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 34u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B2;} + var_i0 = 34u; + } + var_l4 = var_i0; + var_i0 = var_l2; + var_l3 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_L7: + var_i0 = var_p1; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L7; + } + } else { + var_i0 = var_l2; + } + var_l2 = var_i0; + var_i0 = 27u; + var_i1 = var_p0; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 27u; + var_i1 = var_l2; + var_i2 = var_p1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + var_B2:; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f75(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + u32 var_l5 = 0, var_l6 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j2, var_j3; + v128 var_o0, var_o1; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_l6 = var_i0; + var_i1 = 2u; + var_i0 -= var_i1; + var_i1 = 29u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l6; + var_i1 = var_p2; + var_i2 = var_p3; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 += var_i2; + var_i2 = var_p2; + var_i3 = var_p3; + var_i4 = var_p0; + var_i4 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = var_p1; + var_i6 = 1u; + var_i5 -= var_i6; + var_i5 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5)); + var_i6 = 16u; + var_i5 <<= (var_i6 & 31); + var_i4 |= var_i5; + var_i5 = var_l6; + var_i6 = 24u; + var_i5 <<= (var_i6 & 31); + var_i4 |= var_i5; + var_l5 = var_i4; + var_i5 = 16u; + var_i4 >>= (var_i5 & 31); + var_i5 = var_l5; + var_i4 ^= var_i5; + var_i5 = 3844058249u; + var_i4 *= var_i5; + var_l5 = var_i4; + var_i5 = 24u; + var_i4 >>= (var_i5 & 31); + var_i5 = var_l5; + var_i4 ^= var_i5; + var_l5 = var_i4; + var_i3 &= var_i4; + var_i2 += var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = var_l5; + var_i4 = 12u; + var_i3 >>= (var_i4 & 31); + var_i4 = 1u; + var_i3 |= var_i4; + var_i2 *= var_i3; + var_i3 = var_l5; + var_i2 += var_i3; + var_i3 = 16u; + var_i2 = I32_ROTL(var_i2, var_i3); + var_j2 = (u64)(var_i2); + var_i3 = var_p4; + var_j3 = (u64)(var_i3); + var_j2 *= var_j3; + var_j3 = 32ull; + var_j2 >>= (var_j3 & 63); + var_i2 = (u32)(var_j2); + var_i3 = 3u; + var_i2 *= var_i3; + var_i1 += var_i2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 16777215u; + var_i1 &= var_i2; + var_p2 = var_i1; + var_i2 = 19u; + var_i1 >>= (var_i2 & 31); + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p2; + var_i2 = 8191u; + var_i1 &= var_i2; + var_i2 = 28352u; + var_i1 += var_i2; + var_p0 = var_i1; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_o0 = simde_wasm_i8x16_ne(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_i0 = I32_CTZ(var_i0); + var_i1 = var_l6; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l6; + var_i1 = 16u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 16u; + var_i0 -= var_i1; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p0; + var_i2 = var_l6; + var_i3 = 16u; + var_i2 -= var_i3; + var_i1 += var_i2; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_o0 = simde_wasm_v128_xor(var_o0, var_o1); + var_i0 = simde_wasm_v128_any_true(var_o0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + } + var_i0 = var_p2; + var_i1 = 13u; + var_i0 >>= (var_i1 & 31); + var_i1 = 63u; + var_i0 &= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f76(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = var_p3; + var_i4 = var_p4; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 4294967295u; + goto var_Bfunc; + } + var_i0 = var_p2; + var_i1 = var_p3; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 += var_i1; + var_i1 = var_p4; + var_i2 = 3u; + var_i1 *= var_i2; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_i0 += var_i1; + var_i0 = i32_load16_s_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f77(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + v128 var_o1, var_o2, var_o3; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p1 = var_i0; + var_i1 = 31u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_L1: + var_i0 = var_p1; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 3408u; + var_i0 += var_i1; + var_i1 = var_p0; + var_i2 = var_l2; + var_i1 += var_i2; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l3 = var_o1; + var_o2 = var_l3; + var_i3 = 65u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_sub(var_o2, var_o3); + var_i3 = 25u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_u8x16_le(var_o2, var_o3); + var_i3 = 32u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_v128_and(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_o1); + var_i0 = var_l2; + var_i1 = 16u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L1; + } + var_i0 = var_p1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f78(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l4 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + v128 var_o0, var_o1, var_o2; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + goto var_Bfunc; + } + var_L1: + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_o0; + var_i1 = var_p1; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l3; + var_i2 = var_p2; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l4 = var_i0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l4; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + var_p0 = var_i0; + goto var_B2; + } + var_i0 = var_p0; + var_i1 = 16u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L1;} + var_B2:; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f79(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + v128 var_o0, var_o1; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + goto var_Bfunc; + } + var_L1: + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l2 = var_i0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l2; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + var_p0 = var_i0; + goto var_B2; + } + var_i0 = var_p0; + var_i1 = 16u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L1;} + var_B2:; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f80(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l2; + var_i2 = 63u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 60u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } else { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + UNREACHABLE; + } + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f81(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } else { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + UNREACHABLE; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f82(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_i1 = 2u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_L1: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l3 = var_i0; + } else { + var_i0 = var_l2; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L1; + } + var_i0 = var_l3; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f83(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 0u; + var_i2 = var_p0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f84(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_p0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f85(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = var_p2; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i1; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4294967295u; + goto var_Bfunc; + } + var_i0 = var_p2; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 16u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + goto var_Bfunc; + } + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + goto var_Bfunc; + } + var_i0 = var_p2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p2; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L4: + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 36u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i1 = var_p1; + var_i2 = 16u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L4; + } + var_i0 = 58u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f86(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 128u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f87(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 92u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 10u; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l0; + var_i1 = 6u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l0; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 32u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 9u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f88(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 43u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = 32u; + var_i2 |= var_i3; + var_i3 = 101u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = 32u; + var_i2 |= var_i3; + var_i3 = 101u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B1;} + var_i0 = var_l0; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f86(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f89(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = 1u; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_p1; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p1 = var_i0; + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_B1; + } + var_i0 = var_p1; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = 6u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i0; + var_i0 = var_p1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_p1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_p1 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_p1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_p1 = var_i1; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p1; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + instance->w2c_g25 = var_i0; + var_i0 = var_p0; + instance->w2c_g26 = var_i0; + var_i0 = 0u; + instance->w2c_g27 = var_i0; + var_i0 = 44u; + instance->w2c_g29 = var_i0; + } + goto var_L0; + } + var_l2 = var_i0; + var_B1:; + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f90(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + u64 var_j0, var_j1; + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p1 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 65535u; + var_i0 &= var_i1; + var_p0 = var_i0; + var_i1 = 26217u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 28265u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 28532u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g43; + var_i2 = 2u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = 29295u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 16777215u; + var_i0 &= var_i1; + var_p0 = var_i0; + var_i1 = 6581857u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 7630702u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1836020326u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g43; + var_i2 = 2u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 2037149295u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g43; + var_i2 = 2u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 29387151656511604ull; + var_j0 ^= var_j1; + var_j1 = 8ull; + var_j0 <<= (var_j1 & 63); + var_i0 = !(var_j0); + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f91(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + instance->w2c_g43 = var_i0; + var_i0 = 0u; + var_i0 = w2c_highlights_f95(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f92(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 1u; + instance->w2c_g43 = var_i0; + var_i0 = 0u; + var_i0 = w2c_highlights_f95(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f93(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 2u; + instance->w2c_g43 = var_i0; + var_i0 = 0u; + var_i0 = w2c_highlights_f95(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f94(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 3u; + instance->w2c_g43 = var_i0; + var_i0 = 0u; + var_i0 = w2c_highlights_f95(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f95(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, + var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, var_l16 = 0, + var_l17 = 0, var_l18 = 0, var_l19 = 0, var_l20 = 0; + v128 var_l21 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7; + u64 var_j1, var_j2, var_j3, var_j4; + v128 var_o0, var_o1, var_o2, var_o3, var_o4, var_o5, var_o6; + var_i0 = instance->w2c_g7; + var_l19 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l18 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62344u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l7 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12448u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l18 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l14 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + var_l4 = var_i0; + } + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l7 = var_i0; + var_i0 = var_p0; + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 3u; + var_i0 &= var_i1; + var_l8 = var_i0; + var_i0 = var_p0; + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l12 = var_i0; + var_i0 = var_p0; + var_i1 = 6u; + var_i0 >>= (var_i1 & 31); + var_i1 = 3u; + var_i0 &= var_i1; + var_l9 = var_i0; + var_i0 = var_p0; + var_i1 = 9u; + var_i0 >>= (var_i1 & 31); + var_l10 = var_i0; + var_i0 = var_p0; + var_i1 = 3u; + var_i0 &= var_i1; + } else { + var_i0 = var_l4; + } + } + var_l4 = var_i0; + var_L4: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l19; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l18; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62344u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l9; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 0u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 -= var_i1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 12074u; + var_i0 = var_i0 != var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 < var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B5;} + } else { + var_i0 = 34u; + var_i1 = 39u; + var_i2 = var_l9; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i0 = w2c_highlights_f89(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_B5;} + } + var_i0 = 0u; + var_l9 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g43; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l7; + var_i2 = var_l1; + var_i3 = instance->w2c_g4; + var_i4 = 10u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g4; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + } + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l6 = var_i1; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 -= var_i1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 12074u; + var_i0 = var_i0 != var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 < var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l9 = var_i0; + goto var_B5; + } + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g43; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l7; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = instance->w2c_g43; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_l4 = var_i0; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l1 = var_i1; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 9u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g0; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_l5 = var_i0; + var_i0 = var_l6; + var_i0 = w2c_highlights_f86(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 43u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 17u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l4 = var_i0; + var_i0 = 1u; + var_l13 = var_i0; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 123u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g43; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 10536u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 58u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_l4 = var_i0; + goto var_L4; + } + } + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 9u); + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 101u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_j2 = 2314885530818453536ull; + var_j1 |= var_j2; + var_j2 = 7161128523421016430ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + var_i1 -= var_i2; + var_l1 = var_i1; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l12 = var_i0; + var_i0 = instance->w2c_g43; + var_i1 = 2u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 9u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_j2 = 7957695015192261990ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 7306093603886885184ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 121399270796608ull; + var_j3 ^= var_j4; + var_j4 = 16ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_l13 = var_i0; + var_i0 = var_l1; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 28268879695865152ull; + var_j1 ^= var_j2; + var_j2 = 8ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_l4 = var_i0; + } + var_i0 = 17u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } else { + var_i0 = 0u; + var_i1 = 2u; + var_i2 = var_l3; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = 1u; + } else { + var_i2 = 0u; + var_l15 = var_i2; + var_i2 = 0u; + var_l16 = var_i2; + var_i2 = instance->w2c_g4; + var_l1 = var_i2; + var_i2 = instance->w2c_g3; + var_l4 = var_i2; + var_i2 = var_l5; + var_i3 = var_l10; + var_i2 |= var_i3; + var_l20 = var_i2; + if (var_i2) { + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l5 = var_i2; + var_i2 = w2c_highlights_f86(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l5; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + if (var_i2) { + var_i2 = instance->w2c_g4; + var_i3 = 45u; + w2c_highlights_f7(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g4; + var_l1 = var_i3; + instance->w2c_g4 = var_i2; + var_i2 = 0u; + var_i3 = var_l1; + var_i3 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 8250u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 1u; + var_i4 += var_i5; + var_i5 = var_l4; + var_i4 = var_i4 < var_i5; + var_i3 &= var_i4; + if (var_i3) {goto var_B20;} + var_i2 = instance->w2c_g4; + var_l1 = var_i2; + } + } + var_L23: + var_i2 = var_l1; + var_i3 = var_l4; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B24;} + var_L25: + var_i2 = var_l1; + var_o2 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l21 = var_o2; + var_i3 = 10u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o3 = var_l21; + var_i4 = 13u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o3 = var_l21; + var_i4 = 123u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o4 = var_l21; + var_i5 = 125u; + var_o5 = simde_wasm_i8x16_splat(var_i5); + var_o4 = simde_wasm_i8x16_eq(var_o4, var_o5); + var_o3 = simde_wasm_v128_or(var_o3, var_o4); + var_o4 = var_l21; + var_i5 = 59u; + var_o5 = simde_wasm_i8x16_splat(var_i5); + var_o4 = simde_wasm_i8x16_eq(var_o4, var_o5); + var_o5 = var_l21; + var_i6 = 47u; + var_o6 = simde_wasm_i8x16_splat(var_i6); + var_o5 = simde_wasm_i8x16_eq(var_o5, var_o6); + var_o4 = simde_wasm_v128_or(var_o4, var_o5); + var_o3 = simde_wasm_v128_or(var_o3, var_o4); + var_o4 = var_l21; + var_i5 = 34u; + var_o5 = simde_wasm_i8x16_splat(var_i5); + var_o4 = simde_wasm_i8x16_eq(var_o4, var_o5); + var_o5 = var_l21; + var_i6 = 39u; + var_o6 = simde_wasm_i8x16_splat(var_i6); + var_o5 = simde_wasm_i8x16_eq(var_o5, var_o6); + var_o4 = simde_wasm_v128_or(var_o4, var_o5); + var_o5 = var_l21; + var_i6 = 58u; + var_o6 = simde_wasm_i8x16_splat(var_i6); + var_o5 = simde_wasm_i8x16_eq(var_o5, var_o6); + var_o4 = simde_wasm_v128_or(var_o4, var_o5); + var_o3 = simde_wasm_v128_or(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_i2 = v128_i8x16_bitmask(var_o2); + var_l5 = var_i2; + var_i2 = var_l4; + var_i3 = var_l1; + var_i2 -= var_i3; + var_l17 = var_i2; + var_i3 = 16u; + var_i2 = var_i2 < var_i3; + if (var_i2) { + var_i2 = var_l5; + var_i3 = 1u; + var_i4 = var_l17; + var_i3 <<= (var_i4 & 31); + var_i4 = 1u; + var_i3 -= var_i4; + var_i2 &= var_i3; + var_l5 = var_i2; + } + var_i2 = var_l5; + if (var_i2) { + var_i2 = var_l1; + var_i3 = var_l5; + var_i3 = I32_CTZ(var_i3); + var_i2 += var_i3; + var_l1 = var_i2; + goto var_B26; + } + var_i2 = var_l17; + var_i3 = 16u; + var_i2 = var_i2 <= var_i3; + if (var_i2) {goto var_B24;} + var_i2 = var_l1; + var_i3 = 16u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_L25; + var_B26:; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l5 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 3472u); + var_i3 = 1u; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l1; + var_l4 = var_i2; + goto var_B24; + } + var_i2 = var_l5; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l5 = var_i2; + var_i3 = 35u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g43; + var_i4 = 2u; + var_i3 = var_i3 >= var_i4; + var_i2 &= var_i3; + var_i3 = var_l5; + var_i4 = 64u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g43; + var_i5 = 1u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i3 = var_l1; + var_i4 = instance->w2c_g4; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l15; + var_i3 = 1u; + var_i2 += var_i3; + var_l15 = var_i2; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_L23; + } + var_i2 = 1u; + goto var_B20; + } + var_i2 = var_l5; + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l15; + var_i4 = 0u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l15; + var_i3 = 1u; + var_i2 -= var_i3; + var_l15 = var_i2; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_L23; + } + var_i2 = 0u; + var_i3 = var_l5; + var_i4 = 125u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l5; + var_i5 = 59u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + if (var_i3) {goto var_B20;} + var_i2 = var_l5; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l16; + var_i2 = !(var_i2); + if (var_i2) { + var_i2 = 1u; + var_i3 = 2u; + var_i4 = 32u; + var_i5 = var_l1; + var_i5 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5) + 1u); + var_i6 = var_l1; + var_i7 = 1u; + var_i6 += var_i7; + var_i7 = var_l4; + var_i6 = var_i6 >= var_i7; + var_i4 = var_i6 ? var_i4 : var_i5; + var_i4 = w2c_highlights_f43(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_i4 ? var_i2 : var_i3; + var_l16 = var_i2; + } + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_L23; + } + var_i2 = var_l5; + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g3; + var_i4 = var_l1; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i3 = 2u; + var_i2 += var_i3; + var_l1 = var_i2; + var_L37: + var_i2 = var_l1; + var_i3 = var_l4; + var_i4 = 42u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i2; + var_i3 = var_l4; + var_i2 = var_i2 < var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 3472u); + var_i3 = 1u; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l1; + var_l4 = var_i2; + goto var_B24; + } + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 1u; + var_i3 += var_i4; + var_i4 = var_l4; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i3 = 2u; + var_i2 += var_i3; + } else { + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_L37; + } + } else { + var_i2 = var_l1; + } + } else { + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 1u; + var_i3 += var_i4; + var_i4 = var_l4; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i3 = instance->w2c_g43; + var_i4 = 0u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i3 = var_l4; + var_i4 = 10u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + } + } + var_l1 = var_i2; + } else { + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + var_L42: + var_i2 = var_l4; + var_i3 = var_l1; + var_i4 = var_l4; + var_i5 = var_l5; + var_i6 = 1u; + var_i7 = 1u; + var_i3 = w2c_highlights_f5(instance, var_i3, var_i4, var_i5, var_i6, var_i7); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i3; + var_i2 = var_i2 <= var_i3; + if (var_i2) {goto var_B43;} + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l17 = var_i2; + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_B43; + } + var_i2 = var_l17; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l17; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + if (var_i2) {goto var_B43;} + var_i2 = var_l1; + var_i3 = 2u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_L42; + var_B43:; + } + goto var_L23; + var_B24:; + var_i2 = 1u; + var_i3 = var_l16; + var_i3 = !(var_i3); + if (var_i3) {goto var_B45;} + var_i2 = 0u; + var_i3 = var_l16; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + if (var_i3) {goto var_B45;} + var_i2 = 1u; + var_i3 = var_l20; + var_i3 = !(var_i3); + if (var_i3) {goto var_B45;} + var_i2 = instance->w2c_g4; + var_l1 = var_i2; + var_L46: + var_i2 = var_l1; + var_i3 = var_l4; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B47;} + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l5 = var_i2; + var_i2 = w2c_highlights_f86(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l5; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l5; + var_i4 = 48u; + var_i3 -= var_i4; + var_i4 = 9u; + var_i3 = var_i3 <= var_i4; + var_i2 |= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + if (var_i2) {goto var_B47;} + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_L46; + var_B47:; + var_L48: + var_i2 = var_l1; + var_i3 = var_l4; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B49;} + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l5 = var_i2; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + if (var_i2) {goto var_B49;} + var_i2 = var_l5; + var_i2 = w2c_highlights_f43(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + if (var_i2) {goto var_B49;} + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + goto var_L48; + var_B49:; + var_i2 = 1u; + var_i3 = var_l1; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 58u; + var_i3 = var_i3 != var_i4; + if (var_i3) {goto var_B45;} + var_i2 = var_l1; + var_i3 = var_l4; + var_i4 = 44u; + var_i5 = 0u; + var_i6 = 0u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l1; + var_i4 = var_l4; + var_i5 = 40u; + var_i6 = 0u; + var_i7 = 0u; + var_i3 = w2c_highlights_f5(instance, var_i3, var_i4, var_i5, var_i6, var_i7); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_i2 < var_i3; + var_B45:; + var_B20:; + } + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l4 = var_i0; + } + var_i0 = var_l11; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l11; + var_i1 = 1u; + var_i0 += var_i1; + var_l11 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l11; + var_i1 = 1u; + var_i0 -= var_i1; + var_l11 = var_i0; + if (var_i0) { + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l14; + var_l4 = var_i0; + } + goto var_L4; + } + } + var_i0 = var_l3; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g43; + var_i2 = 2u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g43; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_l6; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l14; + var_i1 = var_l4; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l14 = var_i0; + var_i0 = var_l11; + var_i1 = 1u; + var_i0 += var_i1; + var_l11 = var_i0; + var_i0 = 3u; + var_l4 = var_i0; + goto var_L4; + } + var_i0 = instance->w2c_g43; + var_i1 = 2u; + var_i0 = var_i0 >= var_i1; + var_i1 = var_l6; + var_i1 = w2c_highlights_f86(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g43; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l6; + var_i2 = w2c_highlights_f86(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l6; + var_i4 = 64u; + var_i3 = var_i3 == var_i4; + var_l1 = var_i3; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i2 = var_l3; + var_i3 = 64u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l6; + var_i0 = w2c_highlights_f86(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 37u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 = var_i1 <= var_i2; + var_i2 = instance->w2c_g43; + var_i3 = 2u; + var_i2 = var_i2 >= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 42u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l7 = var_i0; + var_i0 = var_l10; + var_i1 = 1u; + var_i0 += var_i1; + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l7 = var_i0; + var_i0 = var_l10; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l10; + var_i2 = var_l10; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l3; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 = w2c_highlights_f89(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 3u; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + goto var_B5; + } + goto var_L4; + } + var_i0 = var_l4; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g43; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l6; + var_i1 = w2c_highlights_f86(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l6; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 42u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f86(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 -= var_i1; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 1852139639u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g43; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 21u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = 1u; + var_i1 = 44u; + var_i2 = var_l8; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 23u; + var_i2 = 49u; + var_i3 = instance->w2c_g4; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 124u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = instance->w2c_g3; + var_i4 = var_i4 < var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 42u; + var_i1 = 35u; + var_i2 = instance->w2c_g4; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 1u; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 43u; + var_i1 = 0u; + var_i2 = instance->w2c_g4; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 1u; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 66u; + var_i1 = 35u; + var_i2 = instance->w2c_g4; + var_i3 = var_l1; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f88(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l8 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = var_l8; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3472u); + var_i1 = 2u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + goto var_B62; + } + var_i0 = var_l4; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g43; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i1 = w2c_highlights_f86(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_l1 = var_i2; + var_i3 = var_l3; + var_i4 = 35u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 42u; + var_i1 = 43u; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f86(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_l1 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = 29u; + var_i2 = var_l6; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f86(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_l1 = var_i1; + var_i2 = var_l6; + var_i2 = w2c_highlights_f86(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l6; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_l5 = var_i3; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = var_l5; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 58u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f90(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 21u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l13; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = 14u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 538976288u; + var_i1 |= var_i2; + var_i2 = 678195829u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_L88: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B89;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B89;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L88; + var_B89:; + var_i0 = var_l6; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l6; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_L91: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B92;} + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l21 = var_o0; + var_i1 = 9u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_sub(var_o0, var_o1); + var_i1 = 4u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_u8x16_le(var_o0, var_o1); + var_o1 = var_l21; + var_i2 = 32u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l21; + var_i2 = 34u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l21; + var_i3 = 39u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o2 = var_l21; + var_i3 = 41u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l2 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i0 -= var_i1; + var_l3 = var_i0; + var_i1 = 16u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i2 = var_l3; + var_i1 <<= (var_i2 & 31); + var_i2 = 1u; + var_i1 -= var_i2; + var_i0 &= var_i1; + var_l2 = var_i0; + } + var_i0 = var_l2; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B92; + } + var_i0 = var_l3; + var_i1 = 16u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L91; + } + var_B92:; + var_i0 = 7u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L4; + } + var_i0 = 14u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l12; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 23u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_L98: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B99;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B99;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L98; + var_B99:; + var_i0 = var_l6; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 29u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f90(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 21u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + } + var_i0 = 7u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f88(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f88(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u); + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 2u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i2 = var_l6; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l6; + var_i3 = 48u; + var_i2 -= var_i3; + var_i3 = 9u; + var_i2 = var_i2 <= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f88(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 47u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f87(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 17u; + var_i1 = 25u; + var_i2 = instance->w2c_g4; + var_i3 = var_l1; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 93u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3472u); + var_i1 = 4u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_B62:; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + var_B5:; + var_i0 = var_l18; + if (var_i0) { + var_i0 = 12448u; + instance->w2c_g32 = var_i0; + var_i0 = 12448u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12452u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12456u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12460u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12464u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12468u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12472u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12476u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12480u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_l9; + var_i2 = 6u; + var_i1 <<= (var_i2 & 31); + var_i2 = var_l10; + var_i3 = 9u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i2 = var_l12; + var_i3 = 5u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i2 = var_l8; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i2 = var_l7; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = 256u; + var_i0 |= var_i1; + } else { + var_i0 = 0u; + } + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f96(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 128u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f97(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f98(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l2; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_p0 = var_i0; + } else { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_i0 = 44u; + var_i1 = var_p1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f99(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + v128 var_o0, var_o1; + var_i0 = var_p2; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 65535u; + var_l5 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + var_i0 = 15935u; + } else { + var_i0 = 16777215u; + var_l5 = var_i0; + var_i0 = 2u; + var_l4 = var_i0; + var_i0 = 4074797u; + var_i1 = 4087133u; + var_i2 = var_p2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_p2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_p1; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B3; + } + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 62u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_p1 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i0 -= var_i1; + var_l6 = var_i0; + var_i1 = 16u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 1u; + var_i2 = var_l6; + var_i1 <<= (var_i2 & 31); + var_i2 = 1u; + var_i1 -= var_i2; + var_i0 &= var_i1; + var_p1 = var_i0; + } + var_L6: + var_i0 = var_p1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_p1; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + var_l7 = var_i0; + var_i1 = var_l4; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l5; + var_i0 &= var_i1; + var_i1 = var_p2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + goto var_B3; + } else { + var_i0 = var_p1; + var_i1 = var_p1; + var_i2 = 1u; + var_i1 -= var_i2; + var_i0 &= var_i1; + var_p1 = var_i0; + goto var_L6; + } + UNREACHABLE; + } + var_i0 = var_l6; + var_i1 = 16u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L2; + } + var_B3:; + var_i0 = var_p3; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l8; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_p2; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_p3; + w2c_highlights_f63(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f100(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + v128 var_l8 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_L0: + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_p2; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = 0u; + var_p2 = var_i0; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L0; + } + var_i0 = var_l3; + var_i1 = var_l5; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 91u; + var_i2 = 93u; + var_i3 = 62u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + } + var_i0 = var_l3; + var_i1 = var_l6; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 34u; + var_i2 = 39u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + } + var_i0 = var_l5; + var_i1 = var_l6; + var_i2 = var_l5; + var_i3 = var_l6; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_l4; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_p2 = var_i0; + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 1u; + var_i0 += var_i1; + var_p1 = var_i0; + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_p1; + var_i2 = var_p1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p1 = var_i0; + goto var_L0; + } + var_i0 = var_p1; + if (var_i0) {goto var_L0;} + var_i0 = 1u; + var_l7 = var_i0; + var_B1:; + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i2 = var_l3; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 50u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l7; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g22; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g2; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10u; + w2c_highlights_f68(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + instance->w2c_g26 = var_i0; + var_i0 = var_p2; + instance->w2c_g27 = var_i0; + var_i0 = 1u; + instance->w2c_g28 = var_i0; + } + var_i0 = var_l7; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f101(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f98(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + } + var_L1: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10u; + w2c_highlights_f68(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g26 = var_i0; + var_i0 = var_p0; + instance->w2c_g27 = var_i0; + var_i0 = 0u; + instance->w2c_g28 = var_i0; + } + var_i0 = 0u; + goto var_B2; + } + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L1; + } + var_i0 = var_l1; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_B2; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + goto var_B2; + } + var_i0 = var_l1; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L1; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = var_l2; + var_i0 = w2c_highlights_f98(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + goto var_L1; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f96(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f97(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L1; + } + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B2;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L11: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 60u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L11; + var_B12:; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L1; + var_B2:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f102(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j1, var_j2; + var_i0 = instance->w2c_g7; + var_l4 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12488u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l2 = var_i0; + instance->w2c_g24 = var_i0; + } + } + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 60u; + var_i2 = 38u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L7: + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 -= var_i1; + var_i1 = 32u; + var_i0 = var_i0 > var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B8;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B8;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_B6; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B8;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L7; + var_B8:; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_B6:; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 757932348u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 4u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 4u; + var_i2 = 1u; + var_i3 = 4u; + w2c_highlights_f99(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 4707459271952638268ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 9u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 9u; + var_i2 = 2u; + var_i3 = 53u; + w2c_highlights_f99(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65535u; + var_i0 &= var_i1; + var_i1 = 16188u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 2u; + var_i2 = 3u; + var_i3 = 27u; + w2c_highlights_f99(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = 69u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 5789751444030890300ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 9u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = 0u; + var_i0 = w2c_highlights_f100(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f96(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 33u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f97(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 49u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i0 = w2c_highlights_f101(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L2; + var_B3:; + var_i0 = var_l2; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f103(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + u64 var_j0, var_j1; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p1 = var_i0; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 281474976710655ull; + var_j0 &= var_j1; + var_j1 = 35322350018592ull; + var_j0 |= var_j1; + var_j1 = 128026154263411ull; + var_i0 = var_j0 == var_j1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + } + var_i0 = var_p1; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 1099511627775ull; + var_j0 &= var_j1; + var_j1 = 137977929760ull; + var_j0 |= var_j1; + var_j1 = 435611595891ull; + var_i0 = var_j0 == var_j1; + if (var_i0) { + var_i0 = 2u; + goto var_Bfunc; + } + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f104(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j0, var_j1; + var_i0 = var_p1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = 8u; + var_i1 += var_i2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_j1 = 72057594037927935ull; + var_j0 &= var_j1; + var_j1 = 9042521604759552ull; + var_j0 |= var_j1; + var_j1 = 32774695491433263ull; + var_i0 = var_j0 != var_j1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 8u; + var_i0 += var_i1; + } else { + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = 7u; + var_i1 += var_i2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_j1 = 281474976710655ull; + var_j0 &= var_j1; + var_j1 = 35322350018560ull; + var_j0 |= var_j1; + var_j1 = 111516568548143ull; + var_i0 = var_j0 != var_j1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 7u; + var_i0 += var_i1; + } + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 9u; + var_i2 -= var_i3; + var_i3 = 4u; + var_i2 = var_i2 <= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f105(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + } + var_L1: + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 -= var_i1; + var_i1 = 32u; + var_i0 = var_i0 > var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l1; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B2;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L1; + var_B2:; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 59u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + var_i1 -= var_i2; + var_i2 = 2u; + var_i3 = 1u; + var_i4 = instance->w2c_g4; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 1u); + var_i5 = 35u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = 47u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f106(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = 4u; + var_i2 = 1u; + var_i3 = 4u; + w2c_highlights_f99(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f107(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_l3 = var_i0; + var_L0: + var_i0 = var_l3; + var_i1 = 62u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p1; + var_i0 = !(var_i0); + var_i1 = var_l3; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p2; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = var_p2; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 15935u; + var_i1 = 62u; + var_i2 = var_p1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_p1; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_p2; + w2c_highlights_f63(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f108(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3472u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f109(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3472u); + var_i1 = 16u; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f110(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p2; + var_i1 = var_p1; + var_i0 -= var_i1; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 538976288u; + var_i1 |= var_i2; + var_i2 = 1735287148u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = 63u; + var_i1 &= var_i2; + var_p0 = var_i1; + var_i2 = 1u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 64u; + var_i0 |= var_i1; + } else { + var_i0 = var_p0; + } + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f111(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 64u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 63u; + var_i0 &= var_i1; + var_p0 = var_i0; + var_i0 = var_p2; + var_i1 = var_p1; + var_i0 -= var_i1; + var_i1 = 4u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 538976288u; + var_i0 |= var_i1; + var_p1 = var_i0; + var_i1 = 1936942444u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 14u; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 1936941939u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 15u; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 1936941427u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 16u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f112(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f98(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i0; + } + var_L1: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p3; + w2c_highlights_f68(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + instance->w2c_g26 = var_i0; + var_i0 = var_p0; + instance->w2c_g27 = var_i0; + var_i0 = var_p1; + instance->w2c_g28 = var_i0; + } else { + var_i0 = var_p3; + var_i1 = 12u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_i1 = 1u; + var_i0 |= var_i1; + var_i1 = var_p1; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i2 = var_p2; + var_i3 = 16u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i0 |= var_i1; + instance->w2c_g44 = var_i0; + } + } + var_i0 = 0u; + goto var_B2; + } + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L1; + } + var_i0 = var_l5; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + var_i1 = 63u; + var_i0 &= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i1 = 1u; + var_i0 |= var_i1; + goto var_B2; + } + var_i0 = var_p0; + if (var_i0) { + var_i0 = 0u; + var_p0 = var_i0; + var_i0 = var_l5; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l5; + var_i1 = var_l4; + var_i0 = w2c_highlights_f98(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i0; + var_i0 = var_p2; + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 += var_i2; + var_p2 = var_i1; + var_i2 = var_p2; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 -= var_i4; + var_i4 = var_p1; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i0 = w2c_highlights_f111(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + } + goto var_L1; + } + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B2;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f109(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + var_i0 = w2c_highlights_f111(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + } + goto var_L1; + } + var_i0 = var_l5; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + var_i1 = 63u; + var_i0 &= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i1 = 2u; + var_i0 |= var_i1; + goto var_B2; + } + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L1; + } + var_i0 = var_l5; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_p0 = var_i0; + goto var_L1; + } + var_i0 = var_l5; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l5; + var_i1 = var_l4; + var_i0 = w2c_highlights_f98(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i0; + goto var_L1; + } + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B2;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f108(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_p2; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + var_i0 = w2c_highlights_f110(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + } + goto var_L1; + var_B2:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f113(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 14u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f92(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 15u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f93(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 16u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f94(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + w2c_highlights_f91(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f114(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_L0: + var_i1 = instance->w2c_g4; + var_i2 = 60u; + var_i1 = w2c_highlights_f79(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B1;} + var_i1 = instance->w2c_g4; + var_i2 = var_p0; + var_i1 = w2c_highlights_f104(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i1) {goto var_B1;} + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + goto var_L0; + var_B1:; + var_i1 = instance->w2c_g22; + var_i2 = instance->w2c_g4; + var_l2 = var_i2; + var_i3 = instance->w2c_g3; + var_l4 = var_i3; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_l1 = var_i1; + if (var_i1) { + var_i1 = var_p0; + w2c_highlights_f68(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i1 = var_l2; + instance->w2c_g3 = var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f152(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + w2c_highlights_f191(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f189(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } else { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + var_i0 = 1u; + instance->w2c_g23 = var_i0; + } + var_i0 = var_p0; + w2c_highlights_f113(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g24 = var_i0; + var_i0 = 0u; + instance->w2c_g23 = var_i0; + } + } + var_i0 = var_l4; + instance->w2c_g3 = var_i0; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g31 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f115(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f108(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = w2c_highlights_f103(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 49u; + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = var_p0; + var_i0 = w2c_highlights_f112(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f116(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f116(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 3u; + var_i0 &= var_i1; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = var_p0; + var_i2 = 255u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + w2c_highlights_f114(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f117(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 60u; + var_i2 = 38u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f105(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L0; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 757932348u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 4u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + w2c_highlights_f106(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = 50u; + w2c_highlights_f107(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L0; + } + var_i0 = var_l2; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i2 = 4u; + w2c_highlights_f107(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l2; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f108(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = 49u; + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = 0u; + var_i2 = 0u; + var_i3 = var_p0; + var_i0 = w2c_highlights_f112(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l2; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 128u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p0; + w2c_highlights_f115(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f118(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12488u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l0 = var_i0; + instance->w2c_g24 = var_i0; + } + var_i0 = 9u; + w2c_highlights_f117(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f119(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = 0u; + instance->w2c_g30 = var_i0; + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = var_p0; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = var_p1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p1; + w2c_highlights_f114(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + instance->w2c_g24 = var_i0; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f120(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = 1u; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g27; + var_i1 = instance->w2c_g28; + var_i2 = instance->w2c_g26; + var_i3 = var_p0; + var_i0 = w2c_highlights_f112(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i1 = 3u; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i0 = w2c_highlights_f119(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f121(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 += var_i2; + var_p0 = var_i1; + var_i2 = 6u; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p0; + var_i2 = 6u; + var_i1 += var_i2; + var_i0 = w2c_highlights_f103(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = var_p0; + var_i2 = 5u; + var_i1 += var_i2; + var_l2 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l2; + var_i0 = w2c_highlights_f103(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + var_i0 = var_l1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 6u; + var_i2 = 5u; + var_i3 = var_l1; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 62u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + } + var_i0 = var_l1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f122(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = var_p0; + var_i1 = 123u; + var_i2 = 60u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = w2c_highlights_f121(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 757932348u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 4u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f123(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_p0; + } else { + var_i0 = 40u; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 += var_i3; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_L3: + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B4;} + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L3; + var_B4:; + var_i0 = 18u; + var_i1 = var_p0; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + } else { + var_i0 = var_p0; + } + } else { + var_i0 = var_p0; + } + } + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_i1 = var_p2; + var_i2 = var_p2; + var_i3 = 7u; + var_i2 += var_i3; + var_i3 = var_p1; + var_i0 = w2c_highlights_f195(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 32u; + var_i1 = 40u; + var_i2 = var_p2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f124(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_L0: + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i2 = var_p1; + var_i3 = var_p0; + var_i4 = 8u; + var_i3 >>= (var_i4 & 31); + var_i4 = 255u; + var_i3 &= var_i4; + var_l3 = var_i3; + var_i4 = 0u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i1 += var_i2; + var_i1 = w2c_highlights_f122(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i1; + var_i1 = 0u; + instance->w2c_g44 = var_i1; + var_i1 = 0u; + var_i2 = var_l3; + var_i3 = var_p0; + var_i4 = 16u; + var_i3 >>= (var_i4 & 31); + var_i4 = var_p1; + var_i5 = 12u; + var_i4 += var_i5; + var_i1 = w2c_highlights_f112(instance, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i1; + instance->w2c_g3 = var_i0; + var_i0 = var_p0; + w2c_highlights_f116(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g44; + var_p0 = var_i0; + var_i0 = 0u; + instance->w2c_g44 = var_i0; + var_i0 = var_p0; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 123u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p1; + var_i1 = var_p0; + var_i2 = 65280u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i2 = var_p1; + var_i0 = w2c_highlights_f123(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + } + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f125(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p1; + var_i1 = var_p0; + var_i2 = 65280u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p1; + w2c_highlights_f124(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i2 = var_p1; + var_i0 = w2c_highlights_f123(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 0u; + var_i2 = var_p0; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p1; + w2c_highlights_f124(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f126(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_L0: + var_i0 = var_l2; + var_i0 = w2c_highlights_f122(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = 0u; + instance->w2c_g44 = var_i0; + var_i0 = var_l1; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_i1 = var_l1; + instance->w2c_g3 = var_i1; + var_i1 = var_l2; + instance->w2c_g4 = var_i1; + var_i1 = var_p0; + var_i2 = 12u; + var_i1 += var_i2; + w2c_highlights_f117(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g44; + var_l2 = var_i0; + var_i0 = 0u; + instance->w2c_g44 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = var_p0; + w2c_highlights_f125(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + goto var_L0; + } + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i0 = w2c_highlights_f121(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 12u; + var_i0 += var_i1; + w2c_highlights_f115(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + w2c_highlights_f106(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + goto var_L0; + var_B1:; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f127(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = 58u; + var_i1 = var_p0; + var_i2 = var_p1; + var_i3 = 13984u; + var_i4 = 15u; + var_i5 = 37u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i1; + var_i2 = var_p0; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 < (s32)var_i3); + var_i0 = var_i2 ? var_i0 : var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f128(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g26; + var_i1 = 1u; + var_i2 = instance->w2c_g22; + var_i3 = instance->w2c_g23; + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 1u; + var_i0 = w2c_highlights_f129(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g22; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g26 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f129(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, var_l9 = 0; + v128 var_l10 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g4; + var_l9 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = var_p1; + var_i1 = var_p0; + var_i2 = 896u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 63u; + var_i0 &= var_i1; + var_l8 = var_i0; + var_i0 = var_p0; + var_i1 = 7u; + var_i0 >>= (var_i1 & 31); + var_i1 = 7u; + var_i0 &= var_i1; + var_l7 = var_i0; + var_i0 = var_p0; + var_i1 = 10u; + var_i0 >>= (var_i1 & 31); + var_i1 = 127u; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = var_p0; + var_i1 = 17u; + var_i0 >>= (var_i1 & 31); + var_i1 = 4095u; + var_i0 &= var_i1; + var_l5 = var_i0; + var_i0 = var_p0; + var_i1 = 29u; + var_i0 >>= (var_i1 & 31); + var_l4 = var_i0; + var_L4: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = var_l3; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = var_l3; + var_i3 = 1u; + var_i4 = 44u; + var_i5 = var_l2; + var_i2 = w2c_highlights_f52(instance, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + goto var_L4; + } + var_i0 = var_l7; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l8; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 3u; + goto var_B3; + } + var_i0 = 3u; + var_i1 = var_p0; + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p0; + var_i3 = 62u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l8; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B3;} + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l7; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f127(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_p0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 3u; + var_l7 = var_i0; + goto var_L4; + } + var_i0 = var_p0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + goto var_B3; + } + var_i0 = var_l5; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_p0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l7; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l8; + goto var_B3; + } + var_i0 = var_l7; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_l6 = var_i0; + var_i1 = var_p0; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l7; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 59u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = 35u; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_B3; + } + } + var_i0 = var_p0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_l3 = var_i0; + var_i1 = 1u; + var_i2 = 44u; + var_i3 = var_l2; + var_i0 = w2c_highlights_f52(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + } + goto var_L4; + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = 16u; + var_i1 = 14u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 29u; + var_i2 = 14u; + var_i3 = var_l4; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f127(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i2; + var_i3 = 18u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = 58u; + } else { + var_i2 = var_l6; + } + var_i3 = var_l4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_p0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l4; + var_i4 = 2u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L4; + } + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_p0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_l6 = var_i0; + var_i0 = var_p0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 32u; + var_l6 = var_i0; + var_i0 = var_l5; + var_i1 = var_l5; + var_i2 = 4095u; + var_i1 = var_i1 < var_i2; + var_i0 += var_i1; + var_l5 = var_i0; + } + var_i0 = 35u; + var_i1 = var_p0; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_p0; + var_i3 = 41u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) { + var_i1 = var_l5; + var_i2 = var_l5; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i1 -= var_i2; + var_l5 = var_i1; + var_i1 = 32u; + } else { + var_i1 = var_l6; + } + var_i2 = var_p0; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i4 = 44u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_p0; + var_i4 = 59u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = var_p0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 35u; + var_l6 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + } + var_i0 = var_p0; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = 2u; + var_l4 = var_i0; + } + } + var_i0 = var_l6; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l8; + var_i1 = var_l5; + var_i2 = 17u; + var_i1 <<= (var_i2 & 31); + var_i2 = var_l4; + var_i3 = 29u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 10u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i2 = var_l7; + var_i3 = 7u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i0 |= var_i1; + var_B3:; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_p0; + var_i1 = 63u; + var_i0 &= var_i1; + var_l4 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i2 = 123u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f145(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 128u; + var_i0 |= var_i1; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L0; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 3u; + var_p0 = var_i0; + } + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f145(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 6u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_L33: + var_i0 = instance->w2c_g4; + var_i1 = 62u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B34;} + var_i0 = 1u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 -= var_i3; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 11565u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g4; + var_i4 = var_l9; + var_i3 -= var_i4; + var_i4 = 2u; + var_i3 = var_i3 >= var_i4; + var_i2 &= var_i3; + var_i3 = var_l4; + var_i4 = 6u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 -= var_i4; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 63u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = var_l9; + var_i4 = var_i4 > var_i5; + var_i3 &= var_i4; + var_i4 = var_l4; + var_i5 = 8u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i3 = var_l4; + var_i4 = 7u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_L33;} + var_B34:; + var_i0 = 50u; + var_i1 = 4u; + var_i2 = var_l4; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 129u; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l2; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f127(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i1 = 18u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 19u; + var_i1 = var_i1 == var_i2; + var_l5 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 513u; + var_i1 = 641u; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l3; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l2; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + } + var_i0 = var_l2; + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f105(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_L0;} + } + var_i0 = var_l2; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_l4 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 8u; + var_i2 = 7u; + var_i3 = var_l4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 757932348u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g3; + var_i4 = var_l3; + var_i5 = 4u; + var_i4 += var_i5; + var_i3 = var_i3 >= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f96(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_l2 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l2; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_p0 = var_i0; + goto var_L0; + } + } + var_i0 = var_p1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L46: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B47;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l2; + var_i3 = 64u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B47;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L46; + var_B47:; + } else { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = 60u; + var_i2 = 38u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f145(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l2; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 3u; + var_i1 = var_p0; + var_i2 = var_l4; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_l5 = var_i0; + var_i0 = var_l2; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l2; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 256u; + var_i2 = 0u; + var_i3 = var_p0; + var_i4 = 64u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 |= var_i1; + var_p0 = var_i0; + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + instance->w2c_g4 = var_i0; + var_i0 = 261u; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f109(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 5u; + var_p0 = var_i0; + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f145(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l2; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 36u; + var_l5 = var_i0; + var_i0 = var_p0; + var_i1 = 64u; + var_i0 &= var_i1; + var_i1 = 4u; + var_i0 |= var_i1; + } else { + var_i0 = var_l2; + var_i1 = 47u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = w2c_highlights_f108(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 49u; + var_i1 = 1u; + var_i2 = var_l4; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = 67u; + var_i1 = 3u; + var_i2 = var_p1; + var_i3 = var_l2; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i5 = 42u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l2; + var_i5 = 91u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l4; + var_i5 = 2u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_p0; + } + } + } + var_p0 = var_i0; + var_i0 = var_l5; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f130(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g47; + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f131(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g47; + var_i1 = 4u; + var_i0 &= var_i1; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f132(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g57; + var_i1 = 1024u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g57; + var_i1 = 37568u; + var_i0 += var_i1; + var_i1 = var_p0; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = instance->w2c_g57; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g57 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f133(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = 0u; + instance->w2c_g58 = var_i0; + var_i0 = instance->w2c_g57; + var_i0 = !(var_i0); + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g57; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g57 = var_i0; + var_i0 = instance->w2c_g57; + var_i1 = 1024u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g57; + var_i1 = 37568u; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g58 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f134(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 194u; + var_i0 -= var_i1; + var_i1 = 50u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 4294967295u; + var_i0 ^= var_i1; + var_i1 = 24u; + var_i0 <<= (var_i1 & 31); + var_i0 = I32_CLZ(var_i0); + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f135(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j0, var_j1; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_l2 = var_i0; + var_i1 = 2u; + var_i0 -= var_i1; + var_i1 = 8u; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_p0; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 16u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 24u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_p1 = var_i0; + var_i1 = 16u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_p1; + var_i0 ^= var_i1; + var_i1 = 3844058249u; + var_i0 *= var_i1; + var_p1 = var_i0; + var_i1 = 24u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_p1; + var_i0 ^= var_i1; + var_p1 = var_i0; + var_i1 = 15u; + var_i0 &= var_i1; + var_i1 = 27232u; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i2 = 4u; + var_i1 >>= (var_i2 & 31); + var_i2 = 63u; + var_i1 &= var_i2; + var_i0 += var_i1; + var_i1 = 63u; + var_i0 &= var_i1; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_i1 = 27232u; + var_i0 += var_i1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_p1 = var_i0; + var_i0 = !(var_i0); + var_i1 = var_l2; + var_i2 = var_p1; + var_i3 = 9u; + var_i2 >>= (var_i3 & 31); + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_p1; + var_i1 = 511u; + var_i0 &= var_i1; + var_i1 = 27375u; + var_i0 += var_i1; + var_p1 = var_i0; + var_i0 = var_l2; + var_i1 = 8u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_j0 ^= var_j1; + var_i1 = 8u; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_j1 = (u64)(var_i1); + var_j0 <<= (var_j1 & 63); + var_j1 = 0ull; + var_i0 = var_j0 != var_j1; + if (var_i0) {goto var_B0;} + } else { + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i0 = var_j0 != var_j1; + if (var_i0) {goto var_B0;} + var_i0 = var_p0; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = var_p1; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 9u); + var_i0 ^= var_i1; + var_i1 = 12u; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i0 <<= (var_i1 & 31); + if (var_i0) {goto var_B0;} + } + var_i0 = var_p1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + goto var_Bfunc; + var_B0:; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f136(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + v128 var_o0, var_o1, var_o2, var_o3, var_o4; + var_L0: + var_L2: + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_o0; + var_i1 = 32u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i1 = 97u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_sub(var_o0, var_o1); + var_i1 = 25u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_u8x16_le(var_o0, var_o1); + var_o1 = var_l1; + var_i2 = 48u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_sub(var_o1, var_o2); + var_i2 = 9u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_u8x16_le(var_o1, var_o2); + var_o2 = var_l1; + var_i3 = 95u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o3 = var_l1; + var_i4 = 36u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_i1 = 65535u; + var_i0 ^= var_i1; + var_l0 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 128u; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l0; + var_i0 = w2c_highlights_f134(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = w2c_env_is_id_continue(instance->w2c_env_instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f137(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g49; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 48u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g49; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 120u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l2 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l1; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i1 = !(var_i1); + var_i2 = var_l3; + var_i3 = 32u; + var_i2 |= var_i3; + var_i3 = 101u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 43u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 95u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_p0; + var_i0 = !(var_i0); + var_i1 = var_l1; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_p0 = var_i0; + goto var_B2; + } + goto var_B1; + var_B2:; + var_i0 = var_l1; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + var_i0 = 42u; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f138(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 63u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 13u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + goto var_L0; + var_B1:; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f139(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_i0 = w2c_highlights_f138(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f140(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = 96u; + var_i2 = 36u; + var_i3 = 92u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 11u; + goto var_Bfunc; + } + var_i0 = var_l0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g55; + var_i1 = 256u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = instance->w2c_g55; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = 38880u; + var_i0 += var_i1; + var_i1 = instance->w2c_g54; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g55; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g55 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 18u; + goto var_Bfunc; + } + var_i0 = var_l0; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L0; + var_B1:; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f141(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g53; + var_i1 = instance->w2c_g52; + var_p0 = var_i1; + var_i2 = 92u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 85u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_p0; + var_i3 = 121u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 56u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g58; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 50u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g58; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 134u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_p0; + var_i2 = 118u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 120u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 38592u); + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f142(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f141(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f143(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j0, var_j1, var_j2; + var_i0 = 0u; + instance->w2c_g53 = var_i0; + var_i0 = instance->w2c_g61; + if (var_i0) { + var_i0 = instance->w2c_g63; + instance->w2c_g53 = var_i0; + var_i0 = 0u; + instance->w2c_g63 = var_i0; + } + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 33u; + var_i0 -= var_i1; + var_i1 = 93u; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = var_l0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g53 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L6: + var_i0 = instance->w2c_g4; + var_i1 = 8u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B7;} + var_i0 = instance->w2c_g4; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 2314885530818453536ull; + var_i0 = var_j0 != var_j1; + if (var_i0) {goto var_B7;} + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L6; + var_B7:; + goto var_L2; + } + var_i0 = var_l0; + var_i1 = 194u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 160u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 16711679u; + var_i0 &= var_i1; + var_i1 = 11043042u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 3u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g53 = var_i0; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 12565487u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 3u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L2; + } + var_B3:; + var_i0 = instance->w2c_g4; + instance->w2c_g49 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g61; + if (var_i0) { + var_i0 = instance->w2c_g53; + instance->w2c_g63 = var_i0; + } + var_i0 = 0u; + goto var_B0; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f136(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 26u; + var_i1 = instance->w2c_g51; + var_i2 = 19u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g51; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B0;} + var_i0 = instance->w2c_g49; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f135(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i1 = instance->w2c_g49; + var_l0 = var_i1; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i1 = 8u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 26u; + var_i1 = var_l0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8389754676398092902ull; + var_i1 = var_j1 != var_j2; + if (var_i1) {goto var_B16;} + } else { + var_i0 = 26u; + var_i1 = var_l1; + var_i2 = 6u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B16;} + var_i0 = 26u; + var_i1 = var_l0; + var_i2 = 6u; + var_j1 = w2c_highlights_f181(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j2 = 111516500389741ull; + var_i1 = var_j1 != var_j2; + if (var_i1) {goto var_B16;} + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f166(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 8u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 90u; + var_i1 = var_l0; + var_i1 = w2c_highlights_f163(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 60u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B16;} + var_i0 = 26u; + goto var_B16; + } + var_i0 = 130u; + var_i1 = var_l0; + var_i1 = w2c_highlights_f163(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i1) {goto var_B16;} + var_i0 = 26u; + var_B16:; + goto var_B0; + } + var_i0 = 26u; + goto var_B0; + } + var_i0 = 26u; + var_i1 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i2 = var_l0; + var_i3 = 125u; + var_i2 = var_i2 >= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B0;} + var_i0 = var_l0; + goto var_B0; + } + var_i0 = var_l1; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i0 = w2c_highlights_f137(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 33u; + var_i0 -= var_i1; + switch (var_i0) { + case 0: goto var_B40; + case 1: goto var_B35; + case 2: goto var_B24; + case 3: goto var_B23; + case 4: goto var_B28; + case 5: goto var_B41; + case 6: goto var_B34; + case 7: goto var_B51; + case 8: goto var_B50; + case 9: goto var_B29; + case 10: goto var_B31; + case 11: goto var_B47; + case 12: goto var_B30; + case 13: goto var_B49; + case 14: goto var_B42; + case 15: goto var_B23; + case 16: goto var_B23; + case 17: goto var_B23; + case 18: goto var_B23; + case 19: goto var_B23; + case 20: goto var_B23; + case 21: goto var_B23; + case 22: goto var_B23; + case 23: goto var_B23; + case 24: goto var_B23; + case 25: goto var_B46; + case 26: goto var_B48; + case 27: goto var_B33; + case 28: goto var_B43; + case 29: goto var_B32; + case 30: goto var_B38; + case 31: goto var_B25; + case 32: goto var_B23; + case 33: goto var_B23; + case 34: goto var_B23; + case 35: goto var_B23; + case 36: goto var_B23; + case 37: goto var_B23; + case 38: goto var_B23; + case 39: goto var_B23; + case 40: goto var_B23; + case 41: goto var_B23; + case 42: goto var_B23; + case 43: goto var_B23; + case 44: goto var_B23; + case 45: goto var_B23; + case 46: goto var_B23; + case 47: goto var_B23; + case 48: goto var_B23; + case 49: goto var_B23; + case 50: goto var_B23; + case 51: goto var_B23; + case 52: goto var_B23; + case 53: goto var_B23; + case 54: goto var_B23; + case 55: goto var_B23; + case 56: goto var_B23; + case 57: goto var_B23; + case 58: goto var_B37; + case 59: goto var_B23; + case 60: goto var_B36; + case 61: goto var_B27; + case 62: goto var_B23; + case 63: goto var_B20; + case 64: goto var_B23; + case 65: goto var_B23; + case 66: goto var_B23; + case 67: goto var_B23; + case 68: goto var_B23; + case 69: goto var_B23; + case 70: goto var_B23; + case 71: goto var_B23; + case 72: goto var_B23; + case 73: goto var_B23; + case 74: goto var_B23; + case 75: goto var_B23; + case 76: goto var_B23; + case 77: goto var_B23; + case 78: goto var_B23; + case 79: goto var_B23; + case 80: goto var_B23; + case 81: goto var_B23; + case 82: goto var_B23; + case 83: goto var_B23; + case 84: goto var_B23; + case 85: goto var_B23; + case 86: goto var_B23; + case 87: goto var_B23; + case 88: goto var_B23; + case 89: goto var_B23; + case 90: goto var_B45; + case 91: goto var_B39; + case 92: goto var_B44; + case 93: goto var_B26; + default: goto var_B23; + } + var_B51:; + var_i0 = instance->w2c_g51; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 38592u); + var_i1 = 4u; + var_i0 &= var_i1; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + w2c_highlights_f132(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 265u; + goto var_B21; + var_B50:; + w2c_highlights_f133(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 449u; + goto var_B21; + var_B49:; + var_i0 = 499u; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = var_l0; + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_i0 = w2c_highlights_f137(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + } + var_i0 = 153u; + goto var_B21; + var_B48:; + var_i0 = 473u; + goto var_B21; + var_B47:; + var_i0 = 129u; + goto var_B21; + var_B46:; + var_i0 = 121u; + goto var_B21; + var_B45:; + var_i0 = instance->w2c_g51; + var_i0 = w2c_highlights_f141(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g51; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 38592u); + var_i1 = 2u; + var_i0 &= var_i1; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + } else { + var_i0 = 1u; + } + w2c_highlights_f132(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g54; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g54 = var_i0; + var_i0 = 217u; + goto var_B21; + var_B44:; + var_i0 = instance->w2c_g54; + var_i1 = instance->w2c_g55; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i2 = 38876u; + var_i1 += var_i2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g55; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g55; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g55 = var_i0; + goto var_B20; + } + w2c_highlights_f133(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g54; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g54 = var_i0; + var_i0 = 401u; + goto var_B21; + var_B43:; + var_i0 = 178u; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 190u; + goto var_B22; + var_B42:; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 17u; + goto var_B0; + } + var_i0 = var_l0; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f4(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 37u; + goto var_B0; + } + var_i0 = instance->w2c_g51; + var_i0 = w2c_highlights_f141(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L60: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B59;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B59;} + var_i0 = var_l0; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + goto var_L60; + } + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = var_l0; + var_i3 = 91u; + var_i2 -= var_i3; + var_i3 = 2u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L60; + } + var_L64: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B65;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B65;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L64; + var_B65:; + var_i0 = 58u; + goto var_B58; + var_B59:; + var_i0 = 1u; + var_B58:; + goto var_B0; + } + var_i0 = 489u; + goto var_B22; + var_B41:; + var_i0 = 47u; + goto var_B22; + var_B40:; + var_i0 = var_l0; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 99u; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 106u; + goto var_B21; + } + var_i0 = 113u; + goto var_B21; + var_B39:; + var_i0 = 375u; + goto var_B22; + var_B38:; + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 329u; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 322u; + goto var_B21; + } + var_i0 = 334u; + goto var_B22; + var_B37:; + var_i0 = 0u; + w2c_highlights_f132(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 225u; + goto var_B21; + var_B36:; + w2c_highlights_f133(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 409u; + goto var_B21; + var_B35:; + var_i0 = 34u; + var_i0 = w2c_highlights_f139(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + var_B34:; + var_i0 = 39u; + var_i0 = w2c_highlights_f139(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + var_B33:; + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_i1 = w2c_highlights_f155(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 = w2c_highlights_f185(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + if (var_i1) {goto var_B0;} + } + var_i0 = 263u; + goto var_B22; + var_B32:; + var_i0 = var_l0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 564u; + var_i1 = instance->w2c_g4; + var_i2 = 3u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 459u; + goto var_B21; + } + } + var_i0 = 447u; + goto var_B22; + var_B31:; + var_i0 = 395u; + goto var_B22; + var_B30:; + var_i0 = 291u; + goto var_B22; + var_B29:; + var_i0 = 79u; + goto var_B22; + var_B28:; + var_i0 = 537u; + goto var_B22; + var_B27:; + var_i0 = 521u; + goto var_B22; + var_B26:; + var_i0 = 569u; + goto var_B21; + var_B25:; + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f132(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g54; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g54 = var_i0; + var_i0 = 218u; + goto var_B21; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f136(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g49; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f183(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l0; + goto var_B0; + } + var_i0 = 10u; + goto var_B0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f136(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 10u; + goto var_B0; + var_B24:; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g48; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + goto var_B0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f136(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 25u; + goto var_B0; + var_B23:; + var_i0 = var_l1; + var_i1 = 128u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f134(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = w2c_env_is_id_start(instance->w2c_env_instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f136(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 26u; + goto var_B0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i2 = 1u; + var_i3 = var_l0; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_i0 = 1u; + goto var_B0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + goto var_B0; + var_B22:; + var_l3 = var_i0; + var_i1 = 4294967288u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + var_i1 = 0u; + var_i2 = var_l3; + var_i3 = 2u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 4u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 21u; + var_i0 -= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B21;} + } + var_i0 = var_l2; + var_i1 = 14u; + var_i0 -= var_i1; + goto var_B21; + } + var_i0 = var_l2; + var_i1 = 6u; + var_i0 -= var_i1; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = var_l2; + var_i1 = 1u; + var_i0 |= var_i1; + var_B21:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i2 = 7u; + var_i1 &= var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + goto var_B0; + var_B20:; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = w2c_highlights_f140(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B0:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + instance->w2c_g50 = var_i0; + var_i0 = instance->w2c_g61; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + var_i2 = 5u; + var_i3 = instance->w2c_g62; + var_i4 = instance->w2c_g49; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_l1 = var_i4; + var_i5 = 39u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l1; + var_i4 = 34u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i3 = 96u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 125u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g62 = var_i0; + var_i0 = 63u; + var_i1 = var_l0; + var_i2 = instance->w2c_g50; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g62; + var_i4 = 4u; + var_i3 -= var_i4; + var_i4 = 1u; + var_i3 = var_i3 <= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g49; + var_i1 = instance->w2c_g50; + var_i0 = w2c_highlights_f149(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 3u; + var_i1 = 2u; + var_i2 = instance->w2c_g49; + var_i3 = instance->w2c_g50; + var_i2 = w2c_highlights_f150(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g62 = var_i0; + } + } + } + var_i0 = instance->w2c_g62; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 38592u); + var_i2 = 8u; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g51; + instance->w2c_g52 = var_i0; + var_i0 = var_l0; + instance->w2c_g51 = var_i0; + } + var_i0 = var_l0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f144(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 3u; + instance->w2c_g47 = var_i1; + var_i1 = var_p0; + instance->w2c_g4 = var_i1; + var_i1 = var_p0; + instance->w2c_g48 = var_i1; + var_i1 = 0u; + instance->w2c_g51 = var_i1; + var_i1 = 0u; + instance->w2c_g52 = var_i1; + var_i1 = 0u; + instance->w2c_g59 = var_i1; + var_i1 = 0u; + instance->w2c_g53 = var_i1; + var_i1 = 0u; + instance->w2c_g54 = var_i1; + var_i1 = 0u; + instance->w2c_g55 = var_i1; + var_i1 = 0u; + instance->w2c_g57 = var_i1; + var_i1 = 0u; + instance->w2c_g58 = var_i1; + var_i1 = 0u; + instance->w2c_g60 = var_i1; + var_i1 = 1u; + instance->w2c_g67 = var_i1; + w2c_highlights_f36(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f143(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 27u; + var_i1 = var_i1 != var_i2; + if (var_i1) { + var_i1 = var_p0; + var_i2 = 1u; + var_i1 += var_i2; + var_p0 = var_i1; + } else { + var_L2: + var_i1 = w2c_highlights_f155(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i2 = var_p0; + var_i3 = 3u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) { + var_i1 = instance->w2c_g3; + var_p0 = var_i1; + goto var_B3; + } + var_i1 = var_p0; + w2c_highlights_f172(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i1 = w2c_highlights_f143(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i1; + var_i1 = !(var_i1); + if (var_i1) { + var_i1 = instance->w2c_g3; + var_p0 = var_i1; + goto var_B3; + } + var_i1 = var_l1; + var_i2 = 50u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_p0; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g54; + var_i3 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = (u32)((s32)var_i2 <= (s32)var_i3); + var_i1 &= var_i2; + if (var_i1) { + w2c_highlights_f160(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i1 = instance->w2c_g54; + var_i2 = var_p0; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) { + var_i1 = instance->w2c_g50; + var_p0 = var_i1; + goto var_B3; + } + } + var_i1 = var_l1; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = instance->w2c_g59; + var_i1 = w2c_highlights_f142(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i1) { + var_i1 = instance->w2c_g50; + var_i1 = w2c_highlights_f167(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i1 = 0u; + } + } else { + var_i1 = 0u; + } + if (var_i1) { + var_i1 = instance->w2c_g50; + instance->w2c_g4 = var_i1; + var_i1 = 1u; + var_i2 = w2c_highlights_f168(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f153(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 38592u); + var_i2 = 8u; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) { + var_i1 = var_l1; + instance->w2c_g59 = var_i1; + } + goto var_L2; + var_B3:; + } + var_i1 = 0u; + instance->w2c_g67 = var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f145(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_L0: + var_i0 = var_p2; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = 92u; + var_i4 = 0u; + var_i5 = 0u; + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = var_l3; + var_i2 = var_l3; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i2; + var_i3 = 117u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l3; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l3; + var_i3 = 3u; + var_i2 += var_i3; + var_i3 = 16u; + var_i2 = w2c_highlights_f10(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p1; + var_i4 = var_p2; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_p1; + var_i3 = 1u; + var_i2 += var_i3; + } else { + var_i2 = var_p1; + } + } else { + var_i2 = var_l3; + var_i3 = 2u; + var_i2 += var_i3; + var_i3 = 4u; + var_i2 = w2c_highlights_f10(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } else { + var_i2 = var_p1; + var_i3 = 120u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l3; + var_i3 = 2u; + var_i2 += var_i3; + var_i3 = 2u; + var_i2 = w2c_highlights_f10(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i2 = var_l3; + var_i3 = 2u; + var_i2 += var_i3; + } + } + var_i3 = var_p2; + var_i2 = w2c_highlights_f9(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f146(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f147(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + u32 var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0; + v128 var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_l6 = var_i0; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = var_p3; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = instance->w2c_g45; + var_l8 = var_i1; + var_i2 = 1073741824u; + var_i1 &= var_i2; + if (var_i1) {goto var_B2;} + var_i0 = var_l8; + var_i1 = var_l8; + var_i2 = 0u; + var_i1 = (u32)((s32)var_i1 >= (s32)var_i2); + if (var_i1) {goto var_B2;} + var_i0 = var_l8; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_p1; + var_i1 = w2c_highlights_f146(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i1; + var_i2 = var_p1; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B2;} + var_i0 = var_l8; + var_i1 = var_l5; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l5 = var_i1; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 64u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l5; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l5; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B2;} + var_i0 = 0u; + var_B2:; + instance->w2c_g46 = var_i0; + } else { + var_i0 = instance->w2c_g56; + if (var_i0) { + var_i0 = instance->w2c_g56; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g56 = var_i0; + var_i0 = instance->w2c_g56; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = 39904u; + var_i0 += var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g46 = var_i0; + } + } + } + var_i0 = var_p3; + var_i1 = var_l7; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 40u; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 += var_i3; + var_l6 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_p1; + var_l5 = var_i0; + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 2u; + var_i0 -= var_i1; + var_l5 = var_i0; + var_i1 = var_l6; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l6; + var_l5 = var_i0; + } + } + var_i0 = instance->w2c_g46; + if (var_i0) { + var_i0 = var_p3; + var_i1 = var_l7; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 += var_i3; + var_l6 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g46; + var_i1 = 256u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_l7 = var_i1; + var_i1 = instance->w2c_g22; + var_i2 = instance->w2c_g43; + var_i3 = var_l6; + instance->w2c_g4 = var_i3; + var_i3 = var_l5; + var_i4 = var_p4; + var_i3 -= var_i4; + instance->w2c_g3 = var_i3; + var_i3 = 0u; + instance->w2c_g22 = var_i3; + var_i3 = 0u; + instance->w2c_g43 = var_i3; + var_i3 = instance->w2c_g46; + var_i3 = w2c_highlights_f95(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g46 = var_i3; + instance->w2c_g43 = var_i2; + instance->w2c_g22 = var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l7; + instance->w2c_g3 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_p3 = var_i1; + var_i1 = var_l6; + instance->w2c_g4 = var_i1; + var_i1 = var_l5; + var_i2 = var_p4; + var_i1 -= var_i2; + instance->w2c_g3 = var_i1; + var_i1 = instance->w2c_g46; + var_i2 = 2147483647u; + var_i1 &= var_i2; + var_i2 = instance->w2c_g46; + var_i3 = 2147483648u; + var_i2 &= var_i3; + var_p0 = var_i2; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i1 = w2c_highlights_f129(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p0; + var_i1 |= var_i2; + instance->w2c_g46 = var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p3; + instance->w2c_g3 = var_i0; + } + var_i0 = var_p4; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l5; + var_i2 = 1u; + var_i1 -= var_i2; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } else { + var_i0 = 44u; + var_i1 = var_l6; + var_i2 = var_l5; + w2c_highlights_f145(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 40u; + var_i1 = var_l5; + var_i2 = var_p1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + var_i1 = 0u; + var_i2 = instance->w2c_g56; + var_i3 = 256u; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = instance->w2c_g56; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = 39904u; + var_i0 += var_i1; + var_i1 = instance->w2c_g46; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g56; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g56 = var_i0; + } + var_i0 = var_p2; + var_i1 = var_p4; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g46 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f148(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0; + u64 var_l9 = 0; + v128 var_l10 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j0, var_j1, var_j2, var_j3, var_j4; + var_i0 = var_p2; + var_i1 = var_p0; + var_l5 = var_i1; + var_i0 += var_i1; + var_p2 = var_i0; + var_L0: + var_i0 = var_p1; + var_i1 = var_p2; + var_i2 = var_p1; + var_i3 = 64u; + var_i4 = 0u; + var_i5 = 0u; + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 32u; + var_p2 = var_i0; + var_i0 = var_p0; + var_i1 = var_l3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p2 = var_i0; + } + var_i0 = var_p2; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p2; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_p2; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p2; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_p2; + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_p2 = var_i0; + goto var_L0; + } + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_p2 = var_i0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_L0;} + var_i0 = var_p2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_L0;} + var_L4: + var_i0 = var_p1; + var_i1 = var_p2; + var_i2 = 1u; + var_i1 += var_i2; + var_p2 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l4; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_L4;} + } + var_i0 = 5u; + var_i1 = var_l5; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 63u; + var_i1 = var_l3; + var_i2 = var_p2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i0 -= var_i1; + var_l5 = var_i0; + var_i1 = 8u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = var_l3; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_j0; + var_i0 = var_l5; + var_i1 = 8u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_j0 = var_l9; + var_j1 = 1ull; + var_i2 = var_l5; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_j2 = (u64)(var_i2); + var_j1 <<= (var_j2 & 63); + var_j2 = 1ull; + var_j1 -= var_j2; + var_j0 &= var_j1; + var_l9 = var_j0; + } + var_j0 = var_l9; + var_j1 = 469786321264ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l9; + var_j2 = 6779489ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l9; + var_j2 = 8389754676633367137ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l9; + var_j3 = 1886351984ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_j1 = var_l9; + var_j2 = 8751745755891331696ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l9; + var_j3 = 7310575213499737460ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + var_j2 = var_l9; + var_j3 = 28821929497491828ull; + var_i2 = var_j2 == var_j3; + var_j3 = var_l9; + var_j4 = 7738135660106375523ull; + var_i3 = var_j3 == var_j4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + } + var_i1 = var_p2; + var_l5 = var_i1; + var_i2 = var_p1; + var_i1 = w2c_highlights_f146(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i1; + var_i2 = var_p1; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B8;} + var_i1 = var_l4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 123u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B8;} + var_i1 = var_l4; + var_i2 = 1u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i1 = 1u; + var_l6 = var_i1; + var_L9: + var_i1 = var_p1; + var_i2 = var_l3; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B8;} + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l7 = var_i1; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l7; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B8;} + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i1 = var_l6; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l6; + var_i3 = var_l7; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l6 = var_i1; + var_i2 = 1u; + var_i1 -= var_i2; + var_i2 = var_l6; + var_i3 = var_l7; + var_i4 = 125u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l6 = var_i1; + if (var_i1) {goto var_L9;} + var_i1 = 5u; + var_i2 = var_l5; + var_i3 = var_l4; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 32u; + var_i2 = var_l4; + var_i3 = var_l4; + var_i4 = 1u; + var_i3 += var_i4; + var_p2 = var_i3; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 68u; + var_i2 = var_p2; + var_i3 = var_l3; + var_i4 = 1u; + var_i3 -= var_i4; + var_p2 = var_i3; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 32u; + var_i2 = var_p2; + var_i3 = var_l3; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_l5 = var_i1; + var_p2 = var_i1; + var_B8:; + if (var_i0) { + var_i0 = var_p2; + var_i1 = var_p1; + var_i0 = w2c_highlights_f146(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B11;} + var_i0 = var_l4; + var_l3 = var_i0; + var_L12: + var_i0 = var_p1; + var_i1 = var_l3; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l6; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l6; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l6; + var_i3 = 36u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l6; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B13;} + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L12; + var_B13:; + var_i0 = var_l3; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B11;} + var_i0 = 5u; + var_i1 = var_l5; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 69u; + var_i1 = var_l4; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_l5 = var_i0; + var_p2 = var_i0; + var_B11:; + } + goto var_L0; + } + var_i0 = 5u; + var_i1 = var_l5; + var_i2 = var_p1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f149(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p1; + var_i1 = 2u; + var_i0 -= var_i1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 12074u; + var_i0 = var_i0 != var_i1; + var_i1 = var_p1; + var_i2 = var_p0; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 < var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f150(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = var_p1; + var_i1 = w2c_highlights_f149(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p1; + var_i3 = var_p0; + var_i2 -= var_i3; + var_i3 = 4u; + var_i2 = var_i2 > var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f151(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + w2c_highlights_f191(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f152(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = 0u; + var_i1 = var_p0; + w2c_highlights_f192(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f153(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g60; + var_i1 = 512u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g60; + var_i1 = 3u; + var_i0 <<= (var_i1 & 31); + var_i1 = 40928u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l2; + var_i1 = var_p1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + } + var_i0 = instance->w2c_g60; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g60 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f154(w2c_highlights* instance) { + u32 var_l0 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g60; + var_i1 = 1u; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i1 = 511u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 511u; + } else { + var_i0 = var_l0; + } + var_i1 = 3u; + var_i0 <<= (var_i1 & 31); + var_i1 = 40928u; + var_i0 += var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f155(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = instance->w2c_g60; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = w2c_highlights_f154(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f156(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = instance->w2c_g60; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = w2c_highlights_f154(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f157(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g60; + var_i0 = !(var_i0); + if (var_i0) { + goto var_Bfunc; + } + var_i0 = w2c_highlights_f154(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f158(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g60; + var_i0 = !(var_i0); + if (var_i0) { + goto var_Bfunc; + } + var_i0 = w2c_highlights_f154(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f159(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = 1u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_p0; + var_i2 = 6u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f160(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g60; + if (var_i0) { + var_i0 = instance->w2c_g60; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g60 = var_i0; + } + var_i0 = 26u; + instance->w2c_g59 = var_i0; + var_i0 = 26u; + instance->w2c_g51 = var_i0; + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g59 = var_i0; + var_i0 = w2c_highlights_f155(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g54; + var_i2 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g60; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g60 = var_i0; + } + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f161(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g67; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f162(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g67; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p1; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f163(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f164(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i0 = w2c_highlights_f163(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_p0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f165(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f164(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f166(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f167(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j1, var_j2; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f163(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f165(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1936617315u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 116u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = var_p0; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f166(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f163(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = var_l1; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = w2c_highlights_f165(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + } + } else { + var_i0 = var_l1; + } + var_i0 = w2c_highlights_f166(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 7u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 <= var_i1; + var_i1 = var_p0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 32480047633037413ull; + var_j1 ^= var_j2; + var_j2 = 8ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f164(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f166(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + } + } + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f166(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + } + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i1 = w2c_highlights_f163(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f168(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = w2c_highlights_f164(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = var_l2; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 67u; + var_i1 = 51u; + var_i2 = var_l1; + var_i3 = var_l0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f184(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + } + } else { + var_i0 = 0u; + } + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f169(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = w2c_highlights_f143(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g50; + var_i1 = instance->w2c_g49; + var_i0 -= var_i1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g49; + var_i1 = instance->w2c_g50; + w2c_highlights_f187(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 32u; + var_i1 = instance->w2c_g49; + var_i2 = instance->w2c_g50; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 3u; + var_i1 = instance->w2c_g54; + var_i2 = 1u; + var_i1 -= var_i2; + w2c_highlights_f153(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 27u; + instance->w2c_g59 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f170(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f166(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i1; + var_i1 = instance->w2c_g4; + w2c_highlights_f162(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 34u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B1; + } + var_i0 = var_l1; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + var_B1:; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f171(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g60; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g60; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f172(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + v128 var_l8 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + v128 var_o0, var_o1, var_o2, var_o3; + var_L0: + var_i0 = var_p0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f166(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i1; + var_i1 = instance->w2c_g4; + w2c_highlights_f162(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 256u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 32u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 256u; + var_i0 -= var_i1; + w2c_highlights_f158(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + var_i0 = 34u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + w2c_highlights_f157(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 6u; + w2c_highlights_f157(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 260u; + w2c_highlights_f158(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 5u; + w2c_highlights_f157(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + w2c_highlights_f158(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g59 = var_i0; + var_i0 = 0u; + instance->w2c_g51 = var_i0; + } + goto var_B2; + } + var_i0 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 256u; + var_i0 += var_i1; + w2c_highlights_f158(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 34u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f160(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + var_i0 = var_l2; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + var_i0 = var_l2; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f4(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g61; + var_i1 = instance->w2c_g67; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f149(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 2u; + instance->w2c_g62 = var_i0; + } + } + goto var_B2; + } + } + var_i0 = var_l1; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f169(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l1; + var_i2 = var_l1; + var_i3 = var_l1; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g61; + var_i1 = instance->w2c_g67; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 7u; + var_i2 = var_l1; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g62 = var_i0; + } + } + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + var_i0 = var_l1; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 256u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + } + var_i0 = 37u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f163(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L22: + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B23;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f164(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_L22;} + var_B23:; + var_i0 = 55u; + var_i1 = 2u; + var_i2 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 256u; + var_i2 = var_i2 >= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B2; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 44u; + var_i2 = var_i2 == var_i3; + var_i3 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 256u; + var_i3 = var_i3 >= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B2:; + } else { + var_i0 = var_p0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f186(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + if (var_i0) { + var_i0 = 52u; + var_i1 = instance->w2c_g4; + var_i2 = var_p0; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_i1 = instance->w2c_g54; + w2c_highlights_f153(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B25; + } + } + var_L28: + var_i0 = var_l5; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + } else { + var_L32: + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_o0; + var_i1 = 60u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l8; + var_i2 = 123u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l8; + var_i2 = 38u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l8; + var_i3 = 64u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l8; + var_i2 = 47u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l8; + var_i3 = 10u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l3 = var_i0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l3; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + var_p0 = var_i0; + goto var_B33; + } + var_i0 = var_p0; + var_i1 = 16u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L32;} + var_B33:; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 60u; + var_i2 = 123u; + var_i3 = 38u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B29;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B29;} + var_i0 = var_l2; + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_L36: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B37;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l3; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B37;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L36; + var_B37:; + var_i0 = var_p0; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 > var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i2 = var_p0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 59u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 52u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 47u; + var_i1 = instance->w2c_g4; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 += var_i3; + var_p0 = var_i2; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L28; + } + var_i0 = var_l2; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f186(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + if (var_i0) { + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_l4 = var_i0; + goto var_B29; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L28; + } + var_i0 = var_l2; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + goto var_B29; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_p0 = var_i0; + var_L43: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B44;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f182(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B44;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L43; + var_B44:; + var_i0 = var_l3; + var_i1 = var_p0; + var_i0 = w2c_highlights_f183(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 1u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 2u; + var_l4 = var_i0; + goto var_B29; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L28; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 52u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f4(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g61; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + var_i1 = w2c_highlights_f149(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + instance->w2c_g62 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + goto var_L28; + } + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_L49: + var_i0 = var_p0; + var_i1 = var_l6; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 -= var_i2; + var_p0 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l3 = var_i1; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B48;} + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 9u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B48;} + goto var_L49; + } + var_i0 = 1u; + var_B48:; + var_i1 = var_l7; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 52u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L28; + var_B29:; + var_i0 = 52u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B25;} + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f169(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B25; + } + var_i0 = var_l4; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 4u; + var_i1 = instance->w2c_g54; + w2c_highlights_f153(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B25; + } + var_i0 = var_l2; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f169(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B25; + } + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 34u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f168(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 7u; + w2c_highlights_f157(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f169(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B25; + } + var_i0 = w2c_highlights_f170(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f160(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B25; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f163(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i2 = var_l1; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 62u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 34u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = w2c_highlights_f168(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f153(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B25; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 52u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f161(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B25:; + } else { + var_i0 = var_p0; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_p0 = var_i0; + var_L60: + var_i0 = var_p0; + var_i1 = 60u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B61;} + var_i0 = var_p0; + var_i1 = 2u; + var_i0 = w2c_highlights_f185(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L60; + } + var_l1 = var_i0; + var_B61:; + var_i0 = var_p0; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g22; + var_i3 = instance->w2c_g43; + var_i4 = var_l2; + instance->w2c_g4 = var_i4; + var_i4 = var_p0; + instance->w2c_g3 = var_i4; + var_i4 = 0u; + instance->w2c_g22 = var_i4; + var_i4 = 0u; + instance->w2c_g43 = var_i4; + var_i4 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = w2c_highlights_f95(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f158(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g43 = var_i3; + instance->w2c_g22 = var_i2; + instance->w2c_g3 = var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i0 = !(var_i0); + if (var_i0) {goto var_B59;} + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 34u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f168(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f170(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f160(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B59:; + } else { + var_i0 = w2c_highlights_f170(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f160(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + } + } + var_i0 = w2c_highlights_f155(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = instance->w2c_g68; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = w2c_highlights_f171(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + instance->w2c_g68 = var_i0; + var_i0 = instance->w2c_g4; + instance->w2c_g3 = var_i0; + goto var_Bfunc; + } + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f159(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_L0;} + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f173(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 2u; + w2c_highlights_f191(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f174(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 134u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_p0; + var_i2 = 73u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = 26u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f175(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u64 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + u64 var_j0, var_j1, var_j2, var_j3; + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_j0; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p0 = var_i0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_j0 = var_l2; + var_j1 = 16777215ull; + var_j0 &= var_j1; + var_j1 = 7958113ull; + var_i0 = var_j0 == var_j1; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_j0 = var_l2; + var_j1 = 491328529774ull; + var_j0 ^= var_j1; + var_j1 = 24ull; + var_j0 <<= (var_j1 & 63); + var_i0 = !(var_j0); + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_j0 = var_l2; + var_j1 = 281474976710655ull; + var_j0 &= var_j1; + var_l2 = var_j0; + var_j1 = 125779768604014ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l2; + var_j2 = 113723913172083ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l2; + var_j2 = 119225648511347ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l2; + var_j3 = 127970252055151ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + var_i0 |= var_i1; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_j0 = var_l2; + var_j1 = 72057594037927935ull; + var_j0 &= var_j1; + var_l2 = var_j0; + var_j1 = 31069335677005666ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l2; + var_j2 = 31093567915781749ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f176(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g0; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B1;} + var_i0 = var_l1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f177(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = instance->w2c_g0; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f178(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = w2c_highlights_f176(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = w2c_highlights_f177(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = w2c_highlights_f176(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f177(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f179(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + u32 var_l5 = 0; + u64 var_l6 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j0, var_j1, var_j2, var_j3; + var_i0 = var_p1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 38592u); + var_i1 = 32u; + var_i0 &= var_i1; + var_i1 = instance->w2c_g41; + var_i2 = instance->w2c_g37; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B0;} + var_i0 = var_p1; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g36 = var_i0; + var_i0 = instance->w2c_g42; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g41; + if (var_i0) { + w2c_highlights_f38(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 56u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g36; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g36 = var_i0; + } + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 90u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = 75u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B7;} + var_i0 = var_p0; + var_i1 = 19u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_p1; + var_i1 = 26u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p2; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p4; + var_i1 = var_p3; + var_i0 -= var_i1; + var_i1 = 11u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = var_p3; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 7u); + var_i1 = 1919906915u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p3; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 7166760226508402531ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + } + if (var_i0) {goto var_B7;} + } + var_i0 = var_p1; + var_i1 = 122u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = 124u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p2; + var_i1 = w2c_highlights_f174(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p2; + var_i3 = 25u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B7;} + } + var_i0 = instance->w2c_g41; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g42; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g42 = var_i0; + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 55u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f41(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 53u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + w2c_highlights_f41(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 26u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = 25u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p1; + var_i2 = 134u; + var_i1 = var_i1 <= var_i2; + var_i2 = var_p1; + var_i3 = 118u; + var_i2 = var_i2 >= var_i3; + var_i1 &= var_i2; + var_i2 = var_p1; + var_i3 = 9u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g42; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + } + } + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B0;} + var_i0 = var_p1; + var_i1 = 27u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = 28u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + instance->w2c_g39 = var_i0; + } + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g38 = var_i0; + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 50u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = 51u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g38; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g38 = var_i0; + } + goto var_B0; + } + var_i0 = instance->w2c_g38; + if (var_i0) {goto var_B0;} + var_i0 = var_p1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g40; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g40 = var_i0; + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 55u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f40(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 53u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + w2c_highlights_f40(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B0; + } + var_i0 = var_p1; + var_i1 = 57u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + w2c_highlights_f40(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_B0; + var_B7:; + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + var_B0:; + var_i0 = var_p1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 38736u); + var_l5 = var_i0; + var_i1 = 254u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l5; + goto var_Bfunc; + } + var_i0 = var_l5; + var_i1 = 255u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_l5 = var_i0; + var_i0 = var_p1; + var_i1 = 26u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 4294967295u; + var_i1 = var_p1; + var_i2 = 134u; + var_i1 = var_i1 == var_i2; + var_p0 = var_i1; + var_i2 = instance->w2c_g53; + var_i3 = instance->w2c_g69; + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B29;} + var_i0 = instance->w2c_g53; + var_i1 = var_p2; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 20u; + var_i1 = instance->w2c_g69; + var_i2 = var_p1; + var_i3 = 121u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = 121u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 134u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l5; + var_i4 = 50u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l5; + var_i5 = 9u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i3 = var_l5; + var_i4 = 26u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B29;} + var_i0 = 19u; + var_i1 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p0; + var_i1 &= var_i2; + var_i2 = instance->w2c_g69; + var_i3 = var_l5; + var_i4 = 85u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l5; + var_i5 = 92u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l5; + var_i5 = 27u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l5; + var_i6 = 16u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B29;} + } + var_i0 = 18u; + var_i1 = var_p1; + var_i2 = 120u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B29;} + var_i0 = var_p1; + var_i1 = 119u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_p2; + var_i1 = w2c_highlights_f174(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p2; + var_i3 = 33u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B29;} + } + var_i0 = var_p1; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l5; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 38592u); + var_i2 = 1u; + var_i1 &= var_i2; + if (var_i1) {goto var_B29;} + } + var_i0 = var_p1; + var_i1 = 129u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_p2; + var_i1 = w2c_highlights_f174(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p2; + var_i3 = 33u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B29;} + } + var_i0 = var_p1; + var_i1 = 121u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 20u; + var_i1 = var_p2; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B29;} + var_i0 = 20u; + var_i1 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p2; + var_i3 = 26u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B29;} + } + var_i0 = var_p1; + var_i1 = 118u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_p2; + var_i1 = w2c_highlights_f174(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i1) {goto var_B29;} + } + var_i0 = var_p1; + var_i1 = 134u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_p1; + var_i2 = 122u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 19u; + var_i1 = 17u; + var_i2 = var_p1; + var_i3 = 134u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_p2; + var_i1 = w2c_highlights_f174(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = instance->w2c_g53; + var_i2 = !(var_i2); + var_i3 = var_p1; + var_i4 = 122u; + var_i3 = var_i3 == var_i4; + var_i4 = var_p1; + var_i5 = 124u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_p2; + var_i5 = 25u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i4 = var_p1; + var_i5 = 132u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l5; + var_i6 = 19u; + var_i5 = var_i5 != var_i6; + var_i4 &= var_i5; + var_i5 = var_p2; + var_i6 = 28u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i2 = var_p1; + var_i3 = 123u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B29;} + } + var_i0 = 4294967295u; + var_B29:; + var_p0 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_B27; + } + } else { + var_i0 = var_p2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 38592u); + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g53; + var_i1 = var_l5; + var_i2 = 19u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_p4; + var_i1 = var_p3; + var_i0 -= var_i1; + var_p0 = var_i0; + var_i0 = var_p3; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_j0; + var_i0 = var_p2; + var_i1 = 27u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_p0; + var_i2 = 6u; + var_i1 = var_i1 == var_i2; + var_j2 = var_l6; + var_j3 = 119165519096935ull; + var_j2 ^= var_j3; + var_j3 = 16ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = 126u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B40;} + var_i0 = 4294967295u; + goto var_B40; + } + var_i0 = var_p2; + var_i1 = 123u; + var_i0 = var_i0 != var_i1; + var_i1 = var_p2; + var_i2 = 118u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = var_p2; + var_i2 = 26u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_p1 = var_i0; + var_i0 = var_p0; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 19u; + var_i1 = var_p1; + var_j2 = var_l6; + var_j3 = 444234036085ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B40;} + var_i0 = 4294967295u; + goto var_B40; + } + var_i0 = var_p0; + var_i1 = 8u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = 25u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_j2 = var_l6; + var_j3 = 8245936382198113121ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + if (var_i1) {goto var_B40;} + var_i0 = 4294967295u; + goto var_B40; + } + var_i0 = 4294967295u; + var_i1 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + if (var_i1) {goto var_B40;} + var_i0 = var_p0; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = 63u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_j2 = var_l6; + var_j3 = 281474976710655ull; + var_j2 &= var_j3; + var_l6 = var_j2; + var_j3 = 111516500389741ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + if (var_i1) {goto var_B40;} + var_i0 = 17u; + var_i1 = var_p1; + var_j2 = var_l6; + var_j3 = 111555088313973ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + if (var_i1) {goto var_B40;} + var_i0 = 4294967295u; + goto var_B40; + } + var_i0 = 17u; + var_i1 = var_p0; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 15u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_p1; + var_i3 = var_p2; + var_i4 = 100u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_j2 = var_l6; + var_j3 = 32497656998884193ull; + var_j2 ^= var_j3; + var_j3 = 8ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B40;} + var_i0 = 4294967295u; + var_B40:; + var_p0 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_B27; + } + } + } + } + var_i0 = var_l5; + var_i1 = 19u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 57u; + var_L50: + var_i1 = var_p3; + var_i1 = w2c_highlights_f177(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_p3; + var_i2 = 1u; + var_i1 -= var_i2; + var_p3 = var_i1; + var_L52: + var_i1 = var_p3; + var_i1 = w2c_highlights_f177(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i1; + var_i1 = w2c_highlights_f163(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_p0; + var_i3 = 48u; + var_i2 -= var_i3; + var_i3 = 9u; + var_i2 = var_i2 <= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i1 = !(var_i1); + if (var_i1) { + var_i1 = var_p3; + var_i2 = 1u; + var_i1 -= var_i2; + var_p3 = var_i1; + goto var_L52; + } + goto var_L50; + } + var_i1 = 0u; + var_i2 = var_p3; + var_i2 = w2c_highlights_f176(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i2; + var_i3 = instance->w2c_g0; + var_i2 -= var_i3; + var_i3 = 3u; + var_i2 = var_i2 < var_i3; + if (var_i2) {goto var_B49;} + var_i1 = var_p0; + var_i2 = 3u; + var_i1 -= var_i2; + var_p0 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 7824750u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + var_i2 = var_p0; + var_i2 = w2c_highlights_f177(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f163(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + var_i1 &= var_i2; + var_B49:; + if (var_i1) {goto var_B27;} + } + var_i0 = 16u; + goto var_B27; + } + var_i0 = 29u; + goto var_B27; + } + var_i0 = w2c_highlights_f131(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 23u; + var_i1 = var_l5; + var_i2 = 130u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B27;} + var_i0 = var_l5; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p2; + var_i2 = 26u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = instance->w2c_g57; + var_i1 = !(var_i1); + var_i2 = instance->w2c_g57; + var_i3 = 1024u; + var_i2 = var_i2 > var_i3; + var_i1 |= var_i2; + if (var_i1) { + var_i1 = 0u; + } else { + var_i1 = instance->w2c_g57; + var_i2 = 37567u; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + } + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p4; + var_i3 = var_p3; + var_i2 -= var_i3; + var_p0 = var_i2; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_p3; + var_i3 = 5u; + var_j2 = w2c_highlights_f181(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j3 = 517097156201ull; + var_i2 = var_j2 == var_j3; + goto var_B57; + } + var_i2 = var_p0; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_p3; + var_i3 = 3u; + var_j2 = w2c_highlights_f181(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j3 = 7955819ull; + var_i2 = var_j2 == var_j3; + goto var_B57; + } + var_i2 = 0u; + var_B57:; + var_i1 &= var_i2; + if (var_i1) {goto var_B27;} + } + } + var_i0 = var_p2; + var_i1 = 22u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + if (var_i1) {goto var_B62;} + var_i0 = 1u; + var_i1 = var_l5; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l5; + var_i3 = 128u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B62;} + var_i0 = var_l5; + var_i1 = 15u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p3; + var_i0 = w2c_highlights_f178(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B62; + } + var_i0 = 0u; + var_B62:; + var_i0 = !(var_i0); + if (var_i0) {goto var_B60;} + } + var_i0 = var_l5; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p2; + var_i2 = 56u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g50; + var_p0 = var_i0; + var_L65: + var_i0 = var_p0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i0; + var_i0 = !(var_i0); + var_i1 = var_p1; + var_i2 = 32u; + var_i1 = var_i1 > var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L65; + } + var_i0 = var_p1; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B60;} + } + var_i0 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p2; + var_i2 = 128u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B60;} + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = instance->w2c_g40; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l5; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 38592u); + var_i2 = 16u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g38; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g39; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = 27u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 28u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l5; + var_i4 = 16u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_p2; + var_i4 = 15u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B60;} + } + var_i0 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g50; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_p2; + var_i2 = 15u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f38(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B60; + } + } + var_i0 = 7u; + var_i1 = var_p4; + var_i2 = var_p3; + var_i1 -= var_i2; + var_p0 = var_i1; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_p3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 8u); + var_i2 = 100u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p3; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 7308895133777555061ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + goto var_B70; + } + var_i1 = var_p0; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_p3; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 5136718u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + goto var_B70; + } + var_i1 = var_p0; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_p3; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8751735898823355977ull; + var_i1 = var_j1 == var_j2; + goto var_B70; + } + var_i1 = 0u; + var_B70:; + if (var_i1) {goto var_B27;} + var_i0 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p3; + var_i1 = var_p4; + var_i0 = w2c_highlights_f175(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 56u; + var_i1 = var_l5; + var_i2 = 15u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B27;} + var_i0 = var_l5; + var_i1 = 86u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 56u; + var_i1 = var_p2; + var_i2 = 55u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p2; + var_i3 = 53u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_p2; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p2; + var_i4 = 5u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_p2; + var_i4 = 41u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B27;} + } + var_i0 = var_l5; + var_i1 = 26u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p3; + var_i0 = w2c_highlights_f176(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i1 = instance->w2c_g0; + var_i0 -= var_i1; + var_i1 = 6u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 56u; + var_i1 = var_p0; + var_i2 = 6u; + var_i1 -= var_i2; + var_p0 = var_i1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 111555088313973ull; + var_j1 ^= var_j2; + var_j2 = 16ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i2 = var_p0; + var_i2 = w2c_highlights_f177(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f163(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + var_i1 &= var_i2; + if (var_i1) {goto var_B27;} + } + } + } + } + var_i0 = 57u; + var_i1 = var_l5; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i2 = 0u; + var_i3 = instance->w2c_g53; + var_i4 = var_p2; + var_i5 = 19u; + var_i4 = var_i4 != var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + if (var_i1) {goto var_B27;} + var_i0 = 57u; + var_i1 = var_l5; + var_i2 = 76u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 86u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B27;} + var_i0 = 55u; + var_i1 = var_l5; + var_i2 = 110u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 84u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l5; + var_i3 = 134u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B27;} + var_i0 = 14u; + var_i1 = var_l5; + var_i2 = 90u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B27;} + var_i0 = 29u; + var_i1 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l5; + var_i3 = 59u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = 27u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 16u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i2 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_p2; + var_i4 = 41u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g50; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 58u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i3 = var_p2; + var_i4 = 15u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B27;} + var_i0 = 14u; + var_i1 = var_p2; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B27;} + var_i0 = var_p3; + var_p0 = var_i0; + var_L80: + var_i0 = 1u; + var_i1 = var_p0; + var_i2 = var_p4; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B79;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p1 = var_i0; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_p1; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_p1; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L80; + } + var_i0 = 0u; + var_B79:; + if (var_i0) { + var_i0 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 55u; + var_i1 = 1u; + var_i2 = var_l5; + var_i3 = 129u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 127u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l5; + var_i4 = 118u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l5; + var_i5 = 133u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l5; + var_i5 = 128u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + if (var_i2) {goto var_B84;} + var_i1 = 0u; + var_i2 = var_p2; + var_i3 = instance->w2c_g53; + var_i1 = var_i3 ? var_i1 : var_i2; + var_p0 = var_i1; + var_i2 = 16u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 55u; + var_i2 = var_i2 == var_i3; + var_p1 = var_i2; + var_i1 |= var_i2; + var_i2 = var_p0; + var_i3 = 86u; + var_i2 = var_i2 == var_i3; + var_p2 = var_i2; + var_i1 |= var_i2; + var_i2 = var_l5; + var_i3 = 77u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B84;} + var_i1 = var_l5; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_p4 = var_i1; + var_i2 = var_l5; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) { + var_i1 = var_p0; + var_i2 = 53u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p1; + var_i1 |= var_i2; + var_i2 = var_p2; + var_i3 = var_p4; + var_i4 = var_p0; + var_i5 = 16u; + var_i4 = var_i4 == var_i5; + var_i5 = var_p0; + var_i6 = 23u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + goto var_B84; + } + var_i1 = var_p0; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 28u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B84;} + var_i1 = var_p0; + var_i2 = 22u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 5u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + if (var_i2) {goto var_B84;} + var_i1 = var_l5; + var_i2 = 15u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = 1u; + var_i2 = var_p0; + var_i3 = 32u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B84;} + var_i1 = 1u; + var_i2 = 0u; + var_i3 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = instance->w2c_g38; + var_i2 = var_i4 ? var_i2 : var_i3; + if (var_i2) {goto var_B84;} + var_i1 = var_p3; + var_i1 = w2c_highlights_f178(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B84; + } + var_i1 = 0u; + var_B84:; + if (var_i1) {goto var_B27;} + } + var_i0 = 6u; + goto var_B27; + } + var_i0 = 55u; + var_i1 = var_p3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B27;} + var_i0 = 58u; + goto var_B27; + var_B60:; + var_i0 = 59u; + var_B27:; + goto var_Bfunc; + } + var_i0 = w2c_highlights_f130(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 15u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = 26u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g49; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + var_i1 = instance->w2c_g49; + var_i2 = instance->w2c_g50; + var_i1 = w2c_highlights_f175(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 40u; + goto var_Bfunc; + } + } + } else { + var_i0 = var_p2; + var_i1 = 15u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 40u; + goto var_Bfunc; + } + } + } + var_i0 = 35u; + var_i1 = 25u; + var_i2 = var_p1; + var_i3 = 15u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f180(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 1u; + w2c_highlights_f191(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u64 w2c_highlights_f181(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j0, var_j1, var_j2; + var_i0 = var_p1; + var_i1 = 8u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + goto var_Bfunc; + } + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 1ull; + var_i2 = var_p1; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_j2 = (u64)(var_i2); + var_j1 <<= (var_j2 & 63); + var_j2 = 1ull; + var_j1 -= var_j2; + var_j0 &= var_j1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_j0; +} + +u32 w2c_highlights_f182(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f163(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f183(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j1, var_j2, var_j3; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = w2c_highlights_f135(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 38592u); + var_i1 = 128u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p1 = var_i0; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 5u; + var_j1 = w2c_highlights_f181(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j2 = 521644567909ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = var_p1; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 7u; + var_j2 = w2c_highlights_f181(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j3 = 29113321536775536ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 83u; + goto var_Bfunc; + } + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f184(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + u64 var_j0, var_j1; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p1 = var_i0; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 6u; + var_j0 = w2c_highlights_f181(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j1 = 128026154263411ull; + var_i0 = var_j0 == var_j1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + } + var_i0 = var_p1; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 5u; + var_j0 = w2c_highlights_f181(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j1 = 435611595891ull; + var_i0 = var_j0 == var_j1; + if (var_i0) { + var_i0 = 2u; + goto var_Bfunc; + } + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f185(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g3; + var_i1 = 8u; + var_i2 = 7u; + var_i3 = var_p1; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l2 = var_i1; + var_i2 = var_p0; + var_i1 += var_i2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 12092u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = var_p0; + var_i2 = var_l2; + var_i1 += var_i2; + var_i0 = w2c_highlights_f184(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p1; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = var_l2; + var_i1 += var_i2; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = var_l2; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_i3 = 9u; + var_i2 -= var_i3; + var_i3 = 4u; + var_i2 = var_i2 <= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f186(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j0, var_j1; + var_i0 = var_p0; + var_i0 = w2c_highlights_f166(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = 7u; + var_i1 += var_i2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 7u; + var_j0 = w2c_highlights_f181(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_j1 = 34177684928883046ull; + var_i0 = var_j0 != var_j1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 7u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f182(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 0u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f166(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f187(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = 18u; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 += var_i3; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 32u; + var_i1 = var_p0; + var_i2 = var_p1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f188(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 7u; + w2c_highlights_f191(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f189(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + instance->w2c_g51 = var_i0; + var_i0 = 0u; + instance->w2c_g52 = var_i0; + var_i0 = 0u; + instance->w2c_g59 = var_i0; + var_i0 = 0u; + instance->w2c_g69 = var_i0; + var_i0 = 0u; + instance->w2c_g53 = var_i0; + var_i0 = 0u; + instance->w2c_g54 = var_i0; + var_i0 = 0u; + instance->w2c_g55 = var_i0; + var_i0 = 0u; + instance->w2c_g56 = var_i0; + var_i0 = 0u; + instance->w2c_g46 = var_i0; + var_i0 = 0u; + instance->w2c_g45 = var_i0; + var_i0 = 0u; + instance->w2c_g57 = var_i0; + var_i0 = 0u; + instance->w2c_g58 = var_i0; + var_i0 = 0u; + instance->w2c_g60 = var_i0; + var_i0 = 0u; + instance->w2c_g62 = var_i0; + var_i0 = 0u; + instance->w2c_g63 = var_i0; + w2c_highlights_f36(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f190(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, + var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0; + v128 var_l15 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j3, var_j4, var_j5; + var_i0 = instance->w2c_g7; + var_l14 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + if (var_i0) { + var_i0 = instance->w2c_g4; + instance->w2c_g48 = var_i0; + w2c_highlights_f189(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + instance->w2c_g48 = var_i0; + } + var_i0 = 0u; + var_i1 = instance->w2c_g62; + var_p0 = var_i1; + var_i1 = !(var_i1); + if (var_i1) {goto var_B2;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f140(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = var_l3; + var_i1 = instance->w2c_g4; + var_i2 = var_p0; + var_i3 = 18u; + var_i2 = var_i2 == var_i3; + var_i3 = 0u; + var_i4 = var_p0; + var_i5 = 11u; + var_i4 = var_i4 == var_i5; + w2c_highlights_f147(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B2;} + goto var_B3; + } + var_i0 = var_p0; + var_i1 = 3u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + w2c_highlights_f4(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = instance->w2c_g4; + var_i2 = 0u; + w2c_highlights_f148(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 4u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 -= var_i2; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 12074u; + var_i1 = var_i1 != var_i2; + var_i2 = instance->w2c_g4; + var_i3 = var_l3; + var_i2 -= var_i3; + var_i3 = 2u; + var_i2 = var_i2 < var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B2;} + var_i0 = 0u; + instance->w2c_g62 = var_i0; + var_i0 = 0u; + goto var_B2; + } + var_i0 = var_p0; + var_i1 = 5u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 39u; + var_i2 = var_p0; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i0 = w2c_highlights_f138(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f145(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B2;} + goto var_B3; + } + var_i0 = instance->w2c_g4; + var_i1 = 34u; + var_i2 = 39u; + var_i3 = var_p0; + var_i4 = 6u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_p0 = var_i1; + var_i2 = var_p0; + var_i3 = var_p0; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_p0 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_p0; + var_i1 = !(var_i1); + if (var_i1) {goto var_B2;} + var_i0 = 0u; + instance->w2c_g62 = var_i0; + var_i0 = 0u; + goto var_B2; + var_B3:; + var_i0 = 0u; + instance->w2c_g62 = var_i0; + var_i0 = instance->w2c_g51; + instance->w2c_g52 = var_i0; + var_i0 = var_p0; + instance->w2c_g51 = var_i0; + var_i0 = var_p0; + instance->w2c_g59 = var_i0; + var_i0 = 0u; + var_B2:; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i0 = instance->w2c_g47; + var_i1 = 2u; + var_i0 &= var_i1; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_l7 = var_i0; + var_i0 = instance->w2c_g64; + } + var_l11 = var_i0; + var_L10: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l14; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_i0 = w2c_highlights_f155(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f159(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B11;} + var_i0 = var_l4; + w2c_highlights_f172(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + goto var_L10; + } + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l5; + var_l2 = var_i0; + var_i0 = var_l9; + var_l1 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l10; + } else { + var_i0 = w2c_highlights_f143(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = instance->w2c_g49; + var_l1 = var_i0; + var_i0 = instance->w2c_g50; + } + var_l3 = var_i0; + var_i0 = var_p0; + var_i1 = var_l1; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 34u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f168(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f170(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f160(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + goto var_L10; + } + var_i0 = var_l2; + var_i0 = !(var_i0); + if (var_i0) {goto var_B11;} + var_i0 = var_l11; + if (var_i0) { + var_i0 = instance->w2c_g66; + var_i1 = instance->w2c_g60; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l2; + var_i2 = 50u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32125u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = var_l11; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + instance->w2c_g65 = var_i0; + goto var_B11; + } + } + var_i0 = var_l2; + var_i1 = 27u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g66; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g66 = var_i0; + } + var_i0 = var_l2; + var_i1 = 50u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g66; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g66; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g66 = var_i0; + } + } + var_i0 = var_l4; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 50u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = instance->w2c_g54; + var_i1 = w2c_highlights_f156(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = (u32)((s32)var_i0 <= (s32)var_i1); + if (var_i0) { + var_i0 = 32u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_p0 = var_i0; + w2c_highlights_f160(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L10; + } + } + var_i0 = var_l7; + var_i1 = var_l2; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g59; + var_i0 = w2c_highlights_f142(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = var_l3; + var_i0 = w2c_highlights_f167(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 34u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g45 = var_i0; + var_i0 = 1u; + var_i1 = w2c_highlights_f168(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f153(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + goto var_L10; + } + } + var_i0 = instance->w2c_g62; + var_l13 = var_i0; + var_i0 = w2c_highlights_f143(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = instance->w2c_g49; + var_l9 = var_i0; + var_i0 = instance->w2c_g50; + var_l10 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = var_l2; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 85u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g69 = var_i0; + } else { + var_i0 = instance->w2c_g69; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 23u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 38736u); + var_i3 = 19u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g69 = var_i0; + } + } + } + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = instance->w2c_g59; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g59; + var_i2 = 27u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g59; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_p0 = var_i1; + var_i2 = var_l2; + var_i3 = 26u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_l4 = var_i0; + var_i0 = 1073742084u; + var_i1 = 3221225473u; + var_i2 = 0u; + var_i3 = var_p0; + if (var_i3) { + var_i3 = var_l1; + var_i4 = 1u; + var_i3 += var_i4; + var_l4 = var_i3; + var_i3 = var_l3; + var_i4 = 1u; + var_i3 -= var_i4; + } else { + var_i3 = var_l3; + } + var_i4 = var_l4; + var_i3 -= var_i4; + var_p0 = var_i3; + var_i4 = 8u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 7310575213499737460ull; + var_i4 = var_j4 == var_j5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_p0; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l4; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 126879448790131ull; + var_j3 ^= var_j4; + var_j4 = 16ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + } + var_i0 = var_l8; + if (var_i0) { + var_i0 = var_l5; + var_i0 = !(var_i0); + var_i1 = var_l5; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 38592u); + var_i2 = 8u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + var_i1 = var_l5; + var_i2 = 15u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 26u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = 29u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l2; + var_i1 = 27u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g59; + var_i1 = var_l2; + var_i2 = var_l5; + var_i3 = var_l1; + var_i4 = var_l3; + var_i0 = w2c_highlights_f179(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = var_l3; + w2c_highlights_f187(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 38736u); + var_i1 = 253u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = instance->w2c_g59; + var_i1 = var_l2; + var_i2 = var_l5; + var_i3 = var_l1; + var_i4 = var_l3; + var_i0 = w2c_highlights_f179(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = var_l2; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f145(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = var_l2; + var_i1 = 11u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = 0u; + var_i3 = 1u; + var_i4 = 1u; + w2c_highlights_f147(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = var_l2; + var_i1 = 18u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = 1u; + var_i3 = 1u; + var_i4 = 0u; + w2c_highlights_f147(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = var_l2; + var_i1 = 17u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 24u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = var_l2; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l3; + var_i0 = w2c_highlights_f150(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = 3u; + w2c_highlights_f148(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_B35; + } + var_i0 = var_l2; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f145(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = var_p0; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = 0u; + var_i3 = 1u; + var_i4 = 0u; + w2c_highlights_f147(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = var_p0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 46u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B35; + } + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B35:; + } + var_i0 = instance->w2c_g45; + var_l12 = var_i0; + var_i0 = 0u; + instance->w2c_g45 = var_i0; + var_i0 = var_l1; + var_l4 = var_i0; + var_i0 = var_l3; + var_p0 = var_i0; + var_i0 = var_l2; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = var_l3; + var_i1 = 2u; + var_i0 -= var_i1; + var_p0 = var_i0; + var_L49: + var_i0 = var_p0; + var_i1 = var_l4; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B50;} + var_i0 = var_l4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B50;} + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + goto var_L49; + var_B50:; + var_L51: + var_i0 = var_p0; + var_i1 = var_l4; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B52;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B52;} + var_i0 = var_l1; + var_p0 = var_i0; + goto var_L51; + var_B52:; + } + var_i0 = var_l2; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l13; + var_i1 = !(var_i1); + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 26u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = var_l4; + var_i1 -= var_i2; + var_p0 = var_i1; + var_i2 = 3u; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 538976288u; + var_i2 = 0u; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 |= var_i1; + var_l1 = var_i0; + var_i0 = var_p0; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1819112552u; + var_i0 = var_i0 == var_i1; + instance->w2c_g45 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 7566179u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 260u; + instance->w2c_g45 = var_i0; + } + } + } + var_i0 = var_l2; + var_i1 = 15u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l12; + var_i2 = 1073741824u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l12; + var_i1 = 3221225471u; + var_i0 &= var_i1; + instance->w2c_g45 = var_i0; + } + var_i0 = instance->w2c_g45; + var_i0 = !(var_i0); + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 38592u); + var_i2 = 8u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l12; + instance->w2c_g45 = var_i0; + } + var_i0 = var_l8; + if (var_i0) { + var_i0 = var_l8; + instance->w2c_g45 = var_i0; + } + var_i0 = var_l3; + var_p0 = var_i0; + var_i0 = var_l13; + var_i0 = !(var_i0); + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 38592u); + var_i2 = 8u; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + instance->w2c_g59 = var_i0; + } + goto var_L10; + var_B11:; + var_i0 = instance->w2c_g65; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f191(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + instance->w2c_g47 = var_i0; + var_i0 = 0u; + instance->w2c_g64 = var_i0; + var_i0 = 0u; + instance->w2c_g61 = var_i0; + var_i0 = 1u; + w2c_highlights_f190(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f192(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + instance->w2c_g47 = var_i0; + var_i0 = 0u; + instance->w2c_g64 = var_i0; + var_i0 = 1u; + instance->w2c_g61 = var_i0; + var_i0 = var_p1; + w2c_highlights_f190(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f193(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 3u; + w2c_highlights_f191(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f194(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = 3u; + var_i1 = var_p0; + w2c_highlights_f192(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f195(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = 3u; + instance->w2c_g47 = var_i0; + var_i0 = instance->w2c_g22; + instance->w2c_g61 = var_i0; + var_i0 = var_p0; + instance->w2c_g64 = var_i0; + var_i0 = 0u; + instance->w2c_g65 = var_i0; + var_i0 = 0u; + var_i1 = var_p1; + var_i0 -= var_i1; + instance->w2c_g66 = var_i0; + var_i0 = 1u; + w2c_highlights_f190(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g65; + var_p0 = var_i0; + var_i0 = 0u; + instance->w2c_g64 = var_i0; + var_i0 = 0u; + instance->w2c_g65 = var_i0; + var_i0 = var_p0; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g22; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g2; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p2; + w2c_highlights_f68(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p3; + instance->w2c_g26 = var_i0; + var_i0 = 1u; + instance->w2c_g31 = var_i0; + } + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f196(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f197(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_p0; + var_i2 = var_p0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_p0; + } + } else { + var_i0 = var_p0; + } + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f198(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = w2c_highlights_f196(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 10u; + var_i2 = 13u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = var_l3; + var_i0 = var_i0 != var_i1; + var_i1 = var_l2; + var_i2 = var_p0; + var_i1 -= var_i2; + var_i2 = var_p1; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l3; + var_i0 = w2c_highlights_f197(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f199(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g26; + var_i0 = w2c_highlights_f198(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 44u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f200(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 58u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f201(w2c_highlights* instance, u32 var_p0) { + u32 var_l3 = 0, var_l4 = 0, var_l5 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0), var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + v128 var_o0, var_o1, var_o2, var_o3, var_o4; + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_o0; + var_i1 = 10u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l1; + var_i2 = 13u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l1; + var_i2 = 58u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l1; + var_i3 = 35u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_l2 = var_o0; + var_i0 = var_p0; + if (var_i0) { + var_o0 = var_l2; + var_o1 = var_l1; + var_i2 = 44u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l1; + var_i3 = 91u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o2 = var_l1; + var_i3 = 93u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o3 = var_l1; + var_i4 = 123u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o3 = var_l1; + var_i4 = 125u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + } else { + var_o0 = var_l2; + } + var_i0 = v128_i8x16_bitmask(var_o0); + var_l3 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i0 -= var_i1; + var_l4 = var_i0; + var_i1 = 16u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i2 = var_l4; + var_i1 <<= (var_i2 & 31); + var_i2 = 1u; + var_i1 -= var_i2; + var_i0 &= var_i1; + var_l3 = var_i0; + } + var_i0 = var_l3; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i0 = w2c_highlights_f200(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l5; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l3; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + } + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + goto var_B1; + } + var_i0 = var_l4; + var_i1 = 16u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_B1:; + var_L8: + var_i0 = instance->w2c_g4; + var_i1 = var_l5; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B9;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_p0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l3; + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B9;} + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + goto var_L8; + var_B9:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f202(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0; + v128 var_l12 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l10 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12488u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l3 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l10; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i1 = instance->w2c_g0; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + } + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l1 = var_i1; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_l1; + var_i3 = var_l1; + var_i4 = 34u; + var_i3 = var_i3 == var_i4; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L9; + var_B10:; + var_i0 = 29u; + var_i1 = 44u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f196(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = var_l4; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i2 = var_l2; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_L14: + var_i0 = var_l1; + var_i1 = 1u; + var_i2 = var_l2; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B15;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 39u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B15;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_L14;} + var_B15:; + } + var_i0 = var_l2; + var_i1 = 29u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 55u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 16777215u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 2960685u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 3026478u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 3u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i2 = instance->w2c_g4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i2 = w2c_highlights_f44(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 43u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = var_l3; + w2c_highlights_f201(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 29u; + var_i1 = 24u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f196(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l3; + var_i2 = w2c_highlights_f200(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + goto var_B19; + } + var_i0 = var_l1; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l0 = var_i0; + var_i1 = var_l1; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 -= var_i2; + var_i2 = var_l3; + var_i3 = var_l3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l6 = var_i0; + var_L26: + var_i0 = var_l6; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B27;} + var_i0 = var_l6; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 49u; + var_i1 -= var_i2; + var_i2 = 8u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B27;} + var_i0 = var_l6; + var_i1 = 1u; + var_i0 += var_i1; + var_l6 = var_i0; + goto var_L26; + var_B27:; + var_i0 = var_l6; + var_i0 = w2c_highlights_f196(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_l9 = var_i0; + var_i0 = var_l5; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = var_l5; + var_i2 = var_l6; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 10u; + var_i2 = 13u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + } + } + var_i0 = 0u; + var_i1 = var_l5; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 10u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l5; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 13u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B25;} + var_i0 = var_l7; + var_l0 = var_i0; + var_L30: + var_i0 = var_l0; + var_i1 = instance->w2c_g0; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B31;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 -= var_i1; + var_l2 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l11; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_i0 = var_l2; + var_l0 = var_i0; + goto var_L30; + var_B31:; + var_i0 = var_l0; + var_i0 = w2c_highlights_f196(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i0 = 35u; + var_i1 = var_l7; + var_i2 = var_l6; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_i1 = var_l9; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4u; + var_i1 = var_l9; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i0 = w2c_highlights_f197(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = w2c_highlights_f198(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 44u; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 11u; + instance->w2c_g25 = var_i0; + var_i0 = var_l0; + instance->w2c_g26 = var_i0; + } + var_i0 = 1u; + var_B25:; + if (var_i0) {goto var_L3;} + } + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 = w2c_highlights_f200(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = 124u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = 63u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_B19:; + var_i0 = var_l3; + w2c_highlights_f201(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f196(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = 29u; + var_i1 = 44u; + var_i2 = instance->w2c_g4; + var_i3 = var_l4; + var_i2 -= var_i3; + var_l0 = var_i2; + var_i3 = 1u; + var_i2 -= var_i3; + var_i3 = 4u; + var_i2 = var_i2 > var_i3; + if (var_i2) {goto var_B35;} + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = 7u; + var_i2 = 44u; + var_i3 = var_l4; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 126u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + goto var_B35; + } + var_i1 = var_l0; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = 3u; + var_i2 = 44u; + var_i3 = var_l4; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 137977929760ull; + var_j3 |= var_j4; + var_j4 = 435728179558ull; + var_j3 ^= var_j4; + var_j4 = 24ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i1 = var_i3 ? var_i1 : var_i2; + goto var_B35; + } + var_i1 = var_l4; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 538976288u; + var_i1 |= var_i2; + var_l2 = var_i1; + var_i1 = var_l0; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = 3u; + var_i2 = var_l2; + var_i3 = 1702195828u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B35;} + var_i1 = 7u; + var_i2 = 44u; + var_i3 = var_l2; + var_i4 = 1819047278u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + goto var_B35; + } + var_i1 = var_l0; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = 3u; + var_i2 = 44u; + var_i3 = var_l2; + var_i4 = 16777215u; + var_i3 &= var_i4; + var_l0 = var_i3; + var_i4 = 7562617u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 6710895u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + goto var_B35; + } + var_i1 = 3u; + var_i2 = 44u; + var_i3 = var_l2; + var_i4 = 65535u; + var_i3 &= var_i4; + var_l0 = var_i3; + var_i4 = 28526u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 28271u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_B35:; + var_i2 = var_l7; + var_i3 = var_l3; + var_i2 = w2c_highlights_f200(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B4:; + var_i0 = var_l8; + if (var_i0) { + var_i0 = 12488u; + instance->w2c_g32 = var_i0; + var_i0 = 12488u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f203(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12496u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l0 = var_i0; + instance->w2c_g24 = var_i0; + } + var_i0 = 0u; + w2c_highlights_f126(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f204(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 10u; + var_i2 = 13u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f205(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + goto var_Bfunc; + } + var_i0 = var_p0; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f206(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 2960685u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 3u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g1; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i2 = 3u; + var_i1 += var_i2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f207(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = var_p0; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 2960685u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + goto var_L0; + } + UNREACHABLE; + } + var_i0 = instance->w2c_g3; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f208(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_p0; + var_i2 = var_p0; + var_i2 = w2c_highlights_f204(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f205(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f209(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12496u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l2 = var_i0; + instance->w2c_g24 = var_i0; + } + var_i0 = w2c_highlights_f206(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + if (var_i0) { + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i0 = w2c_highlights_f207(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = var_l1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = 3u; + w2c_highlights_f68(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = var_l1; + instance->w2c_g3 = var_i1; + var_i1 = 1u; + w2c_highlights_f194(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + instance->w2c_g31 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_i1 = var_l1; + instance->w2c_g3 = var_i1; + var_i1 = var_l0; + instance->w2c_g4 = var_i1; + var_i1 = 3u; + w2c_highlights_f191(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + } + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l1; + w2c_highlights_f208(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + w2c_highlights_f126(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f210(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 12u; + var_i0 *= var_i1; + var_i1 = 45028u; + var_i0 += var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f211(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = instance->w2c_g70; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g71; + goto var_Bfunc; + } + var_i0 = instance->w2c_g70; + var_i0 = w2c_highlights_f210(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f212(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g70; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_p0; + instance->w2c_g71 = var_i0; + var_i0 = var_p1; + instance->w2c_g72 = var_i0; + var_i0 = var_p2; + instance->w2c_g73 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g70; + var_i0 = w2c_highlights_f210(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l3; + var_i1 = var_p1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l3; + var_i1 = var_p2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u, var_i1); + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f213(w2c_highlights* instance) { + u32 var_l0 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g70; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f210(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 45136u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = 45136u; + var_i3 = var_l0; + var_i2 -= var_i3; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f214(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = 0u; + instance->w2c_g74 = var_i0; + var_i0 = var_p1; + var_i1 = var_p2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_p2; + instance->w2c_g4 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g70; + var_i1 = 8u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 53u; + var_i1 = var_p1; + var_i2 = var_p2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + instance->w2c_g4 = var_i0; + goto var_Bfunc; + } + var_i0 = 1u; + instance->w2c_g74 = var_i0; + var_i0 = instance->w2c_g70; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g70 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = var_p2; + instance->w2c_g3 = var_i1; + var_i1 = var_p1; + instance->w2c_g4 = var_i1; + var_i1 = instance->w2c_g1; + var_i2 = var_p1; + var_i3 = 0u; + var_i4 = instance->w2c_g22; + var_i5 = var_p3; + var_i4 &= var_i5; + var_i4 = I32_CLZ(var_i4); + var_i5 = 5u; + var_i4 >>= (var_i5 & 31); + var_i2 = var_i4 ? var_i2 : var_i3; + instance->w2c_g1 = var_i2; + var_i2 = var_p0; + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i4 = 49u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + if (var_i2) { + var_i2 = instance->w2c_g22; + var_i3 = w2c_highlights_f211(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 0u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = w2c_highlights_f225(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g4; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 >= var_i4; + var_i2 |= var_i3; + if (var_i2) {goto var_B2;} + } + var_i2 = var_p0; + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + w2c_highlights_f229(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + w2c_highlights_f345(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_B2; + } + var_i2 = instance->w2c_g22; + var_i2 = !(var_i2); + var_i3 = var_p3; + var_i3 = !(var_i3); + var_i2 |= var_i3; + if (var_i2) { + w2c_highlights_f36(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i2 = instance->w2c_g24; + var_p1 = var_i2; + var_i2 = instance->w2c_g23; + var_l6 = var_i2; + var_i2 = instance->w2c_g22; + if (var_i2) { + var_i2 = 0u; + instance->w2c_g24 = var_i2; + var_i2 = var_p3; + var_i2 = !(var_i2); + instance->w2c_g23 = var_i2; + } + var_i2 = var_p0; + var_i3 = 35u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i4 = 39u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_p0; + var_i4 = 72u; + var_i3 = var_i3 == var_i4; + var_i4 = var_p0; + var_i5 = 74u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_p0; + var_i5 = 73u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i3 = instance->w2c_g22; + var_i4 = var_p3; + var_i3 &= var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = instance->w2c_g30; + if (var_i2) { + var_i2 = var_p0; + var_i2 = w2c_highlights_f408(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i2) {goto var_B8;} + } + var_i2 = w2c_highlights_f72(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i2) {goto var_B8;} + var_i2 = var_p0; + var_i2 = w2c_highlights_f408(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i2) {goto var_B8;} + } + var_i2 = instance->w2c_g22; + if (var_i2) { + var_i2 = var_p0; + var_i3 = var_p3; + var_i3 = !(var_i3); + var_i2 = w2c_highlights_f407(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i2) {goto var_B11;} + } + var_i2 = var_p0; + CALL_INDIRECT(instance->w2c_T0, void (*)(void*), w2c_highlights_t1, var_i2, instance->w2c_T0.data[var_i2].module_instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B11:; + var_B8:; + var_i2 = instance->w2c_g22; + if (var_i2) { + var_i2 = var_p1; + instance->w2c_g24 = var_i2; + var_i2 = var_l6; + instance->w2c_g23 = var_i2; + } + var_B2:; + var_i2 = instance->w2c_g70; + var_i3 = 1u; + var_i2 -= var_i3; + instance->w2c_g70 = var_i2; + instance->w2c_g1 = var_i1; + instance->w2c_g3 = var_i0; + var_i0 = var_p2; + instance->w2c_g4 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f215(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = var_p2; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = w2c_highlights_f222(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 62u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = var_l3; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 39u; + var_i1 = var_l3; + var_i2 = var_l3; + var_i3 = 1u; + var_i2 += var_i3; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = var_p1; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_p0; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_p2; + var_i1 = 1u; + var_i0 -= var_i1; + var_p2 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f216(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + u32 var_l5 = 0, var_l6 = 0, var_l7 = 0; + v128 var_l8 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = 47u; + var_i0 = var_i0 != var_i1; + var_i1 = var_p0; + var_i2 = 49u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_p3; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g2; + var_i1 = instance->w2c_g22; + var_l5 = var_i1; + var_i1 = 1u; + instance->w2c_g22 = var_i1; + var_L1: + var_i1 = var_p1; + var_i2 = var_p2; + var_i1 = var_i1 < var_i2; + if (var_i1) { + var_i1 = var_p1; + var_i2 = var_p1; + var_i2 = w2c_highlights_f204(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i2; + var_i3 = var_p2; + var_i2 = var_i2 > var_i3; + if (var_i2) { + var_i2 = var_p2; + var_p1 = var_i2; + } + var_i2 = var_p1; + var_i3 = var_p3; + var_i1 = w2c_highlights_f215(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i1; + var_i1 = var_p1; + var_i1 = w2c_highlights_f205(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i1; + var_i2 = var_p2; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = var_p2; + var_p1 = var_i1; + } + var_i1 = var_p0; + if (var_i1) { + var_i1 = var_p1; + instance->w2c_g2 = var_i1; + var_i1 = var_p0; + var_i2 = var_l6; + var_i3 = var_p1; + var_i4 = var_p4; + w2c_highlights_f214(instance, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p4; + var_i2 = instance->w2c_g74; + var_i1 |= var_i2; + var_p4 = var_i1; + } else { + var_i1 = 53u; + var_i2 = var_l6; + var_i3 = var_p1; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L1; + } + instance->w2c_g2 = var_i0; + var_i0 = var_l5; + instance->w2c_g22 = var_i0; + var_i0 = var_l5; + var_i0 = !(var_i0); + if (var_i0) { + w2c_highlights_f224(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_p4; + instance->w2c_g74 = var_i0; + var_i0 = var_p2; + instance->w2c_g4 = var_i0; + goto var_Bfunc; + } + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = var_p4; + w2c_highlights_f214(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = 53u; + var_i1 = var_p1; + var_i2 = var_p2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f217(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = 35u; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + var_i3 = var_p0; + var_i1 = w2c_highlights_f215(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f218(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 128u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f219(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = w2c_highlights_f220(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = var_p0; + var_i0 -= var_i1; + var_l3 = var_i0; + var_L0: + var_i0 = var_p1; + var_i1 = var_l2; + var_i2 = var_p1; + var_i3 = 96u; + var_i4 = 0u; + var_i5 = 0u; + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_p0; + var_i2 = var_p1; + var_i1 = w2c_highlights_f220(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i2 = var_p0; + var_i1 -= var_i2; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_L0;} + var_i0 = var_l2; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f220(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 96u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f221(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + goto var_Bfunc; + } + var_i0 = var_p0; + var_l1 = var_i0; + var_L1: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B2;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L1; + var_B2:; + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = var_l1; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + goto var_Bfunc; + } + var_i0 = var_p0; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f222(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_l2; + var_i1 = 3u; + var_i0 = var_i0 >= var_i1; + var_i1 = var_p0; + var_i2 = var_p1; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f223(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + u32 var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0; + v128 var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = 0u; + instance->w2c_g75 = var_i0; + var_L0: + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = var_p0; + var_l5 = var_i0; + var_i0 = var_p3; + var_l6 = var_i0; + var_L2: + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l7; + var_i0 = w2c_highlights_f222(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 62u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l5; + var_i2 = var_l7; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g75 = var_i0; + var_i0 = var_p0; + goto var_Bfunc; + } else { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = var_l7; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + } + var_i0 = var_l6; + var_i1 = 1u; + var_i0 -= var_i1; + var_l6 = var_i0; + goto var_L2; + } + UNREACHABLE; + } + var_i0 = 0u; + var_l6 = var_i0; + var_L7: + var_i0 = var_p4; + var_i1 = var_l6; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l7; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B6;} + var_i0 = var_l5; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3472u); + var_i1 = 32u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 1u; + instance->w2c_g75 = var_i0; + var_i0 = var_p0; + goto var_Bfunc; + } else { + var_i0 = var_l6; + var_i1 = 1u; + var_i2 = 4u; + var_i3 = var_l6; + var_i4 = 3u; + var_i3 &= var_i4; + var_i2 -= var_i3; + var_i3 = var_l8; + var_i4 = 9u; + var_i3 = var_i3 != var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + var_l6 = var_i0; + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + goto var_L7; + } + UNREACHABLE; + } + var_i0 = var_l5; + var_i1 = var_l7; + var_i0 = w2c_highlights_f222(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_l6 = var_i0; + var_L10: + var_i0 = var_l5; + var_i1 = var_l7; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B11;} + var_i0 = var_l5; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B11;} + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + goto var_L10; + var_B11:; + var_i0 = var_l5; + var_i1 = var_l6; + var_i0 -= var_i1; + var_i1 = var_p2; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_B6;} + var_L12: + var_i0 = var_l5; + var_i1 = var_l7; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = var_l5; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l6; + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + goto var_L12; + var_B13:; + var_i0 = var_l5; + var_i1 = var_l7; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } + var_B6:; + var_i0 = var_l7; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = instance->w2c_g3; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f224(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + instance->w2c_g30 = var_i0; + var_i0 = 0u; + instance->w2c_g31 = var_i0; + w2c_highlights_f230(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g80 = var_i0; + var_i0 = 0u; + instance->w2c_g81 = var_i0; + var_i0 = 0u; + instance->w2c_g82 = var_i0; + var_i0 = 0u; + instance->w2c_g78 = var_i0; + var_i0 = 0u; + instance->w2c_g33 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f225(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = w2c_highlights_f211(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g70; + if (var_i0) { + var_i0 = instance->w2c_g70; + var_i0 = w2c_highlights_f210(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } else { + var_i0 = instance->w2c_g72; + } + var_l2 = var_i0; + var_i0 = instance->w2c_g70; + if (var_i0) { + var_i0 = instance->w2c_g70; + var_i0 = w2c_highlights_f210(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + } else { + var_i0 = instance->w2c_g73; + } + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i2 = 256u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 = w2c_highlights_f344(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = 0u; + var_i1 = 0u; + var_i2 = 0u; + w2c_highlights_f212(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i2 = var_l2; + var_i3 = 65535u; + var_i2 &= var_i3; + var_i3 = var_l2; + var_i4 = 16u; + var_i3 >>= (var_i4 & 31); + var_l4 = var_i3; + var_i4 = var_l0; + var_i5 = 16u; + var_i4 >>= (var_i5 & 31); + var_i0 = w2c_highlights_f223(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = instance->w2c_g75; + var_i1 = var_l0; + var_i2 = 255u; + var_i1 &= var_i2; + var_l6 = var_i1; + var_i2 = instance->w2c_g4; + var_i3 = var_l3; + var_i4 = var_l4; + var_i5 = var_l0; + var_i6 = 256u; + var_i5 &= var_i6; + var_i6 = 0u; + var_i5 = var_i5 != var_i6; + w2c_highlights_f216(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = instance->w2c_g74; + var_i2 = var_l6; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l1; + var_i2 = var_l2; + var_i3 = var_l0; + var_i4 = 256u; + var_i3 |= var_i4; + w2c_highlights_f212(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i1 = 1u; + var_i0 = var_i1; goto var_Bfunc; + } + w2c_highlights_f224(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + instance->w2c_g4 = var_i1; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l4; + w2c_highlights_f217(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_i1 = 0u; + var_i2 = 0u; + w2c_highlights_f212(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f213(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f226(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l2; + goto var_Bfunc; + } + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l2; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 757932348u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 4u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_l2 = var_i0; + var_L3: + var_i0 = var_l2; + var_i1 = 45u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i0; + var_i0 = var_p1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = var_p1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 4074797u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + var_i1 = var_p1; + var_i2 = 3u; + var_i1 += var_i2; + var_p0 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } else { + var_i0 = var_p1; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L3; + } + UNREACHABLE; + var_B4:; + var_i0 = instance->w2c_g3; + goto var_Bfunc; + } + var_i0 = var_l2; + var_i1 = var_p1; + var_i2 = 62u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_L7: + var_i0 = var_p1; + var_i1 = var_l2; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_l3; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B8;} + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_p1; + var_i2 = var_l3; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + } + goto var_L7; + var_B8:; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = var_p0; + var_i1 = w2c_highlights_f108(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f103(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + if (var_i0) { + var_L14: + var_i0 = var_l2; + var_i1 = 60u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i0; + var_i0 = var_p1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B15;} + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 = w2c_highlights_f104(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 62u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + goto var_Bfunc; + } + var_i0 = instance->w2c_g3; + goto var_Bfunc; + } else { + var_i0 = var_p1; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L14; + } + UNREACHABLE; + var_B15:; + var_i0 = instance->w2c_g3; + goto var_Bfunc; + } + } + var_i0 = var_l2; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f227(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = 32u; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 += var_i3; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 64u; + var_i1 = var_p0; + var_i2 = var_p1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + var_i1 = var_p2; + w2c_highlights_f228(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f228(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = 32u; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = 2u; + var_i2 += var_i3; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 65u; + var_i1 = var_p0; + var_i2 = var_p1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 32u; + var_i1 = var_p1; + var_i2 = var_p1; + var_i3 = 1u; + var_i2 += var_i3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f229(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0; + u64 var_l18 = 0, var_l19 = 0; + v128 var_l17 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7, + var_i8; + u64 var_j0, var_j1, var_j2, var_j3; + v128 var_o0, var_o1, var_o2, var_o3; + var_i0 = instance->w2c_g7; + var_l14 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12496u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l13 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + var_l8 = var_i0; + } + var_i0 = 0u; + instance->w2c_g76 = var_i0; + var_i0 = 0u; + instance->w2c_g77 = var_i0; + var_i0 = w2c_highlights_f206(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + if (var_i0) { + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i0 = w2c_highlights_f207(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = var_l0; + instance->w2c_g3 = var_i1; + var_i1 = var_l3; + instance->w2c_g4 = var_i1; + w2c_highlights_f202(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 4u; + w2c_highlights_f68(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + instance->w2c_g31 = var_i0; + } else { + var_i0 = instance->w2c_g22; + if (var_i0) { + w2c_highlights_f224(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_i0 = var_l0; + w2c_highlights_f208(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g0; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g0; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + } + var_l6 = var_i0; + var_L6: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l14; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B7;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = var_l4; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L6; + } + var_i0 = var_l6; + var_i1 = var_l5; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l0 = var_i0; + var_L11: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = 3u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L11; + var_B12:; + var_i0 = var_l4; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L6; + } + var_i0 = var_l6; + var_i1 = var_l5; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 39u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_l9 = var_i0; + goto var_L6; + } + var_i0 = var_l6; + var_i1 = var_l5; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L15: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 35u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L15; + var_B16:; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 -= var_i1; + var_i1 = 6u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i2 = w2c_highlights_f43(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 54u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_L18: + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B19;} + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + if (var_i1) {goto var_B19;} + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + goto var_L18; + var_B19:; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 54u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L6; + } + } + var_i0 = var_l6; + var_i1 = var_l5; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 126u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L21: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B22;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l5; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B22;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L21; + var_B22:; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 -= var_i1; + var_l11 = var_i0; + var_i1 = 3u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_L24: + var_i0 = var_l0; + var_i1 = var_l4; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B25;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B25;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L24; + var_B25:; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = var_l4; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = var_l4; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + } + } + var_i0 = var_l0; + var_l3 = var_i0; + var_L28: + var_i0 = var_l0; + var_i1 = var_l4; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B29;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 125u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B29;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L28; + var_B29:; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l3; + var_i1 -= var_i2; + var_l0 = var_i1; + var_i2 = 1u; + var_i1 -= var_i2; + var_i2 = 17u; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B30;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_l6 = var_i0; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1360u); + var_i1 = 1360u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = var_l6; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1362u); + var_i1 = 1360u; + var_i0 += var_i1; + var_l15 = var_i0; + var_i0 = var_l3; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 2314885530818453536ull; + var_j0 |= var_j1; + var_l18 = var_j0; + var_j0 = 18446744073709551615ull; + var_j1 = 1ull; + var_i2 = var_l0; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_j2 = (u64)(var_i2); + var_j1 <<= (var_j2 & 63); + var_j2 = 1ull; + var_j1 -= var_j2; + var_i2 = var_l0; + var_i3 = 8u; + var_i2 = var_i2 >= var_i3; + var_j0 = var_i2 ? var_j0 : var_j1; + var_l19 = var_j0; + var_L31: + var_i0 = var_l1; + var_i1 = var_l15; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_j0 = var_l18; + var_i1 = var_l1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_j0 ^= var_j1; + var_j1 = var_l19; + var_j0 &= var_j1; + var_j1 = 0ull; + var_i0 = var_j0 != var_j1; + if (var_i0) {goto var_B33;} + var_i0 = 8u; + var_l6 = var_i0; + var_L34: + var_i0 = var_l0; + var_i1 = var_l6; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l6; + var_i0 += var_i1; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = var_l3; + var_i2 = var_l6; + var_i1 += var_i2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 2314885530818453536ull; + var_j1 |= var_j2; + var_j0 ^= var_j1; + var_j1 = 18446744073709551615ull; + var_j2 = 1ull; + var_i3 = var_l0; + var_i4 = var_l6; + var_i3 -= var_i4; + var_l16 = var_i3; + var_i4 = 3u; + var_i3 <<= (var_i4 & 31); + var_j3 = (u64)(var_i3); + var_j2 <<= (var_j3 & 63); + var_j3 = 1ull; + var_j2 -= var_j3; + var_i3 = var_l16; + var_i4 = 8u; + var_i3 = var_i3 >= var_i4; + var_j1 = var_i3 ? var_j1 : var_j2; + var_j0 &= var_j1; + var_j1 = 0ull; + var_i0 = var_j0 != var_j1; + if (var_i0) {goto var_B33;} + var_i0 = var_l6; + var_i1 = 8u; + var_i0 += var_i1; + var_l6 = var_i0; + goto var_L34; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + goto var_B30; + var_B33:; + var_i0 = var_l1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L31; + } + var_i0 = 0u; + var_B30:; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l8; + var_i0 -= var_i1; + var_i1 = 0u; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = var_l4; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = 35u; + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = var_l5; + var_i2 = var_l11; + var_i3 = var_l9; + var_i4 = var_l6; + var_i0 = w2c_highlights_f223(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g75; + var_i1 = var_l3; + var_i2 = var_l1; + var_i3 = var_l0; + var_i4 = var_l9; + var_i5 = 0u; + w2c_highlights_f216(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g22; + if (var_i1) { + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_l5; + var_i2 = 32767u; + var_i3 = var_l9; + var_i4 = var_l9; + var_i5 = 32767u; + var_i4 = var_i4 > var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = 16u; + var_i2 <<= (var_i3 & 31); + var_i3 = 65535u; + var_i4 = var_l11; + var_i5 = var_l11; + var_i6 = 65535u; + var_i5 = var_i5 > var_i6; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i2 |= var_i3; + var_i3 = var_l3; + var_i4 = var_l6; + var_i5 = 16u; + var_i4 <<= (var_i5 & 31); + var_i3 |= var_i4; + var_i4 = 256u; + var_i5 = 0u; + var_i6 = instance->w2c_g74; + var_i7 = var_l3; + var_i8 = 0u; + var_i7 = var_i7 != var_i8; + var_i6 &= var_i7; + var_i4 = var_i6 ? var_i4 : var_i5; + var_i3 |= var_i4; + w2c_highlights_f212(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + w2c_highlights_f224(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f213(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_i1 = var_l0; + instance->w2c_g4 = var_i1; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l9; + w2c_highlights_f217(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L6; + } + } + var_i0 = var_l6; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f221(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 > var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i2 = w2c_highlights_f43(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l8; + var_i1 = instance->w2c_g4; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 38u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L6; + } + } + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l5; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 39u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L6; + } + var_i0 = var_l5; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L45: + var_i0 = var_l0; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B46;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l1; + var_i2 = 43u; + var_i1 -= var_i2; + var_i2 = 14u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 128u; + var_i2 = var_i2 >= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B46;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L45; + var_B46:; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l2; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B44;} + var_i0 = var_l0; + var_i1 = var_l3; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 -= var_i1; + var_i1 = 30u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l1 = var_i1; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_L48: + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l3 = var_i1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B44;} + var_i0 = var_l3; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 127u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 32u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_L48;} + } + var_i0 = 0u; + goto var_B44; + } + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l3; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 64u; + var_i2 = var_i2 != var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B44;} + var_i0 = var_l0; + var_l3 = var_i0; + var_L50: + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f218(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) {goto var_L50;} + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = var_l2; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = var_l3; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B44;} + var_i0 = 0u; + var_B44:; + var_l0 = var_i0; + if (var_i0) { + var_i0 = 32u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 65u; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 -= var_i3; + var_l3 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L6; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l12; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l12; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + var_i3 = var_l2; + var_i2 = w2c_highlights_f226(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l12 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_i1 = var_l0; + instance->w2c_g3 = var_i1; + w2c_highlights_f118(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = var_l0; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f224(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L6; + } + } + } + var_i0 = var_l5; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = w2c_highlights_f219(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + } + var_i0 = 53u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L6; + } + var_i0 = var_l5; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = var_l10; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l7; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l2; + var_i2 = 93u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + } + var_i0 = 0u; + var_i1 = instance->w2c_g4; + var_l0 = var_i1; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 23329u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l0; + var_i3 = 3u; + var_i2 += var_i3; + var_l3 = var_i2; + var_i3 = var_l2; + var_i2 = var_i2 >= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B63;} + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = var_l7; + var_i3 = 91u; + var_i4 = 0u; + var_i5 = 0u; + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l7; + var_i1 = var_i1 < var_i2; + if (var_i1) {goto var_B63;} + var_i0 = 0u; + var_i1 = var_l7; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 40u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l7; + var_i3 = 1u; + var_i2 += var_i3; + var_i3 = var_l2; + var_i2 = var_i2 >= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B63;} + var_i0 = 0u; + var_i1 = var_l7; + var_i2 = 2u; + var_i1 += var_i2; + var_i2 = var_l2; + var_i3 = 41u; + var_i4 = 0u; + var_i5 = 0u; + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 10333u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l3; + var_i3 = 2u; + var_i2 += var_i3; + var_i3 = var_l2; + var_i2 = var_i2 >= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B63;} + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = var_l3; + var_i3 = 3u; + var_i2 += var_i3; + var_i3 = var_l2; + var_i4 = 41u; + var_i5 = 0u; + var_i6 = 0u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i2; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B63;} + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l11 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = var_l11; + var_i2 = var_l0; + var_i3 = 2u; + var_i2 += var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = var_l7; + var_i2 = var_l3; + w2c_highlights_f227(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l1; + w2c_highlights_f228(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_B63:; + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L6; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L65: + var_i0 = var_l0; + var_i1 = var_l7; + var_i2 = 91u; + var_i3 = 1u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = var_l7; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B66;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B66;} + var_i0 = var_l0; + var_i1 = 2u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L65; + var_B66:; + var_i0 = var_l0; + var_i1 = var_l7; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L6; + } + var_i0 = var_l7; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l7; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l2; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = var_l2; + var_i2 = 41u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = var_l2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l7; + var_i2 = var_l0; + w2c_highlights_f227(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L6; + } + var_i0 = var_l2; + } else { + var_i0 = var_l2; + var_i1 = var_l7; + var_i2 = var_l2; + var_i3 = var_l7; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } else { + var_i0 = var_l10; + } + var_l10 = var_i0; + } + var_i0 = var_l5; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 1u; + var_i2 = instance->w2c_g4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + } + var_i0 = var_l3; + var_i1 = var_l4; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = var_l5; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g0; + var_i1 = var_i1 > var_i2; + var_i2 = var_l4; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i2 = w2c_highlights_f218(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i2 = w2c_highlights_f43(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l1; + var_i4 = var_l2; + var_i3 = var_i3 >= var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B71;} + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g77; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = instance->w2c_g76; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B71;} + } + var_L74: + var_i0 = var_l1; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l2; + } else { + var_L76: + var_i0 = var_l1; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l17 = var_o0; + var_i1 = var_l5; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l17; + var_i2 = 96u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l0; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + var_l1 = var_i0; + goto var_B77; + } + var_i0 = var_l2; + var_i1 = var_l1; + var_i2 = 16u; + var_i1 += var_i2; + var_l1 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_L76;} + var_B77:; + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = var_l1; + var_i3 = var_l2; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l0 = var_i0; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + instance->w2c_g76 = var_i0; + var_i0 = var_l3; + instance->w2c_g77 = var_i0; + } + var_i0 = 0u; + goto var_B71; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l2; + var_i0 = w2c_highlights_f219(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l2; + var_i0 = w2c_highlights_f220(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + goto var_L74; + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = var_l3; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = 0u; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = var_l2; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 128u; + var_i0 = var_i0 >= var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f218(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = var_l2; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + var_i1 = var_l5; + var_i2 = 95u; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L74; + } + var_B71:; + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 13u; + var_i1 = 12u; + var_i2 = var_l3; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L6; + } + var_i0 = var_l5; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_L87: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B88;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 95u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B88;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L87; + var_B88:; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L6; + } + } + var_i0 = var_l5; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 33u; + var_i0 -= var_i1; + var_i1 = 14u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 -= var_i2; + var_i2 = 6u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 91u; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 <= var_i2; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 -= var_i3; + var_i3 = 3u; + var_i2 = var_i2 <= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L92: + var_i0 = instance->w2c_g3; + var_i1 = var_l0; + var_i0 -= var_i1; + var_i1 = 16u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l17 = var_o0; + var_i1 = 10u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_o1 = var_l17; + var_i2 = 13u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l17; + var_i2 = 60u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l17; + var_i3 = 91u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l17; + var_i2 = 96u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l17; + var_i3 = 92u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l17; + var_i2 = 42u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o2 = var_l17; + var_i3 = 95u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_o1 = var_l17; + var_i2 = 124u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_eq(var_o1, var_o2); + var_o0 = simde_wasm_v128_or(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l3 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l3; + var_i1 = I32_CTZ(var_i1); + var_i0 += var_i1; + goto var_B91; + } else { + var_i0 = var_l0; + var_i1 = 16u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L92; + } + UNREACHABLE; + } + var_L95: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B96;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3472u); + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) {goto var_B96;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L95; + var_B96:; + var_i0 = var_l0; + var_B91:; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L6; + var_B7:; + var_i0 = var_l13; + if (var_i0) { + var_i0 = 12496u; + instance->w2c_g32 = var_i0; + var_i0 = 12496u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f230(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + w2c_highlights_f189(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g64 = var_i0; + var_i0 = 0u; + instance->w2c_g65 = var_i0; + var_i0 = 0u; + instance->w2c_g66 = var_i0; + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + instance->w2c_g26 = var_i0; + var_i0 = 0u; + instance->w2c_g27 = var_i0; + var_i0 = 0u; + instance->w2c_g28 = var_i0; + var_i0 = 0u; + instance->w2c_g29 = var_i0; + var_i0 = 12416u; + var_i1 = 0u; + var_i2 = 32u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 12448u; + var_i1 = 0u; + var_i2 = 1440u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + FUNC_EPILOGUE; +} + +void w2c_highlights_f231(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g24; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g23; + var_l6 = var_i2; + var_i2 = 0u; + instance->w2c_g24 = var_i2; + var_i2 = instance->w2c_g31; + var_i2 = !(var_i2); + var_l3 = var_i2; + instance->w2c_g23 = var_i2; + var_i2 = var_p2; + instance->w2c_g3 = var_i2; + var_i2 = var_p1; + instance->w2c_g4 = var_i2; + var_i2 = var_l3; + var_i2 = !(var_i2); + var_i3 = var_p0; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i4 = var_p0; + var_i5 = 14u; + var_i4 = var_i4 >= var_i5; + var_i3 |= var_i4; + var_i4 = var_p0; + var_i5 = 4u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = w2c_highlights_f72(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i2) {goto var_B0;} + } + var_i2 = var_p0; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l3; + w2c_highlights_f152(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i2 = var_p0; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i4 = 14u; + var_i3 = var_i3 >= var_i4; + var_i2 |= var_i3; + if (var_i2) { + var_i2 = var_p0; + w2c_highlights_f113(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i2 = var_p0; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l3; + var_i2 = !(var_i2); + var_i3 = instance->w2c_g25; + var_i4 = 11u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = w2c_highlights_f199(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + w2c_highlights_f202(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i2 = var_l3; + w2c_highlights_f194(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + } + var_B0:; + instance->w2c_g3 = var_i1; + var_i1 = var_p2; + instance->w2c_g4 = var_i1; + var_i1 = var_l6; + instance->w2c_g23 = var_i1; + instance->w2c_g24 = var_i0; + var_i0 = 1u; + instance->w2c_g31 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f232(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + v128 var_l8 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l6 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12504u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 1u; + } + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = var_l0; + var_i3 = instance->w2c_g4; + var_i4 = 10u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g4; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 2u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 2u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l2 = var_i1; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l4; + var_i2 = w2c_highlights_f44(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l2; + var_i4 = 43u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i5 = 45u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_l7 = var_i0; + var_i1 = var_l2; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_i1 = !(var_i1); + var_i2 = var_l0; + var_i3 = 35u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l4; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 43u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = var_l4; + var_i1 = !(var_i1); + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 22u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 60u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 22u; + var_i1 = 27u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 22u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 22u; + } else { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 17u; + } else { + var_i0 = 60u; + var_i1 = 58u; + var_i2 = instance->w2c_g4; + var_l1 = var_i2; + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 32u; + var_i2 |= var_i3; + var_l0 = var_i2; + var_i2 = 1u; + var_i3 = var_l3; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 1u); + var_i3 = w2c_highlights_f44(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l0; + var_i5 = 120u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l0; + var_i6 = 119u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i5 = var_l0; + var_i6 = 114u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 &= var_i4; + var_i4 = var_l1; + var_i5 = var_l3; + var_i4 -= var_i5; + var_l1 = var_i4; + var_i5 = 1u; + var_i4 = var_i4 > var_i5; + var_i3 &= var_i4; + if (var_i3) {goto var_B17;} + var_i2 = var_l0; + var_i3 = 116u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 115u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = 97u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l1; + var_i4 = 2u; + var_i3 -= var_i4; + var_i4 = 1u; + var_i3 = var_i3 <= var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i2 = w2c_highlights_f44(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i2) { + var_i2 = 1u; + var_i3 = var_l3; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 2u); + var_i3 = w2c_highlights_f44(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l1; + var_i5 = 2u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + if (var_i3) {goto var_B17;} + } + } + var_i2 = var_l3; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 538976288u; + var_i2 |= var_i3; + var_l2 = var_i2; + var_i2 = 1u; + var_i3 = var_l3; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 3u); + var_i3 = w2c_highlights_f44(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l0; + var_i5 = 120u; + var_i4 -= var_i5; + var_i5 = 2u; + var_i4 = var_i4 <= var_i5; + var_i3 &= var_i4; + var_i4 = var_l2; + var_i5 = 16776960u; + var_i4 &= var_i5; + var_i5 = 7171328u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i4 = var_l1; + var_i5 = 4u; + var_i4 -= var_i5; + var_i5 = 1u; + var_i4 = var_i4 <= var_i5; + var_i3 &= var_i4; + if (var_i3) {goto var_B17;} + var_i2 = var_l1; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 1869768058u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l1; + var_i4 = 3u; + var_i3 = var_i3 > var_i4; + if (var_i3) {goto var_B17;} + var_i2 = var_l1; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = 1u; + var_i3 = var_l2; + var_i4 = 65535u; + var_i3 &= var_i4; + var_l1 = var_i3; + var_i4 = 8u; + var_i3 >>= (var_i4 & 31); + var_l2 = var_i3; + var_i4 = 108u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i5 = 104u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l2; + var_i5 = 120u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l0; + var_i5 = 97u; + var_i4 -= var_i5; + var_i5 = 3u; + var_i4 = var_i4 <= var_i5; + var_i3 &= var_i4; + if (var_i3) {goto var_B17;} + var_i2 = 1u; + var_i3 = var_l0; + var_i4 = 115u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 99u; + var_i4 -= var_i5; + var_i5 = 4u; + var_i4 = var_i4 <= var_i5; + var_i3 |= var_i4; + var_i4 = var_l2; + var_i5 = 115u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + if (var_i3) {goto var_B17;} + var_i2 = var_l1; + var_i3 = 28787u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 28774u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l1; + var_i4 = 29292u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 25456u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i3 = var_l1; + var_i4 = 26995u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 26980u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l1; + var_i5 = 28770u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l1; + var_i5 = 28775u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l1; + var_i6 = 28788u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i5 = var_l1; + var_i6 = 24946u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + goto var_B17; + } + var_i2 = 0u; + var_i3 = var_l1; + var_i4 = 3u; + var_i3 = var_i3 != var_i4; + if (var_i3) {goto var_B17;} + var_i2 = var_l0; + var_i3 = 101u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l0; + var_i4 = 114u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l2; + var_i3 = 16777215u; + var_i2 &= var_i3; + var_l0 = var_i2; + var_i3 = 7104883u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 7104868u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = 7106675u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 7106658u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + goto var_B17; + } + var_i2 = var_l2; + var_i3 = 8u; + var_i2 >>= (var_i3 & 31); + var_i3 = 65535u; + var_i2 &= var_i3; + var_l0 = var_i2; + var_i3 = 30817u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 30818u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = 30819u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 30820u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = 26995u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 26980u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l0; + var_i5 = 28770u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l0; + var_i6 = 28787u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i5 = var_l0; + var_i6 = 28777u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_B17:; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + var_l0 = var_i0; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 22u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = 32u; + var_i2 = 25u; + var_i3 = var_l0; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 41u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l0; + var_i5 = 91u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l0; + var_i6 = 93u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 44u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 12504u; + instance->w2c_g32 = var_i0; + var_i0 = 12504u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f233(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = 40u; + var_i2 = 41u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + } else { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_p0 = var_i0; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + var_i0 = 47u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f234(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 125u; + var_i2 = 10u; + var_i3 = 13u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 58u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 125u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f235(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 58u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f234(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = 4294967295u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_l1 = var_i0; + } + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g78; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g78 = var_i0; + } + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f233(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 3472u); + var_i2 = 7u; + var_i1 >>= (var_i2 & 31); + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 58u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f236(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + var_i1 = var_i1 > var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = 1u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i2 = 36u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_l3; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 1u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_p0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l3; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i0 = w2c_highlights_f235(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L0; + var_B1:; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 > (s32)var_i3); + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g26 = var_i0; + var_i0 = var_l2; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + instance->w2c_g27 = var_i0; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f237(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p2; + var_i1 = var_l3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l3; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i2 = var_l3; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } else { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L0; + } + UNREACHABLE; + } + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f238(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + v128 var_l14 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = instance->w2c_g22; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g23; + var_i2 = instance->w2c_g24; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g78 = var_i0; + } + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12512u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l11 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + } + var_l6 = var_i0; + } + var_i0 = var_l5; + var_i0 = !(var_i0); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l3 = var_i1; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + } else { + var_i0 = var_l1; + } + } + var_l3 = var_i0; + var_L5: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l6; + var_i3 = var_l9; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + var_i1 = 13u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_L12: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = var_l10; + if (var_i0) { + var_L15: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 9u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L15; + var_B16:; + } + var_i0 = var_l1; + var_i1 = var_l6; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l1; + var_i2 = var_l9; + var_i3 = var_l6; + var_i1 = w2c_highlights_f237(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l1 = var_i2; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B11; + } + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L12; + } + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + var_i1 = var_l6; + var_i2 = var_l10; + var_i3 = 44u; + w2c_highlights_f67(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B11:; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + goto var_L5; + } + } + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 7u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l5; + var_i0 = !(var_i0); + } else { + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + var_i1 = var_l2; + var_i2 = 8u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 4294967287u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i0 = 1u; + } else { + var_i0 = var_l3; + } + } + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B6;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l3; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + var_i1 = var_i1 < var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l0 = var_i1; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 39u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L5; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + var_i0 = w2c_highlights_f236(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g22; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12u; + instance->w2c_g25 = var_i0; + var_i0 = 44u; + instance->w2c_g29 = var_i0; + } + var_i0 = 0u; + var_l3 = var_i0; + goto var_L5; + } + var_i0 = var_l0; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 96u; + var_i1 = 1u; + var_i2 = 47u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L5; + } + var_i0 = var_l0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 39u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L5; + } + var_i0 = instance->w2c_g78; + var_l3 = var_i0; + var_i0 = 0u; + var_i0 = w2c_highlights_f235(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = instance->w2c_g78; + var_i2 = var_l3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = var_l1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 2u; + var_i2 = var_l3; + var_i1 -= var_i2; + var_i0 += var_i1; + var_i1 = var_l5; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = var_l2; + var_i1 = 4294967287u; + var_i0 &= var_i1; + var_l2 = var_i0; + } + goto var_L5; + } + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g78; + var_i1 = !(var_i1); + var_i2 = instance->w2c_g4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 2u); + var_i3 = 60u; + var_i2 = var_i2 != var_i3; + var_i3 = instance->w2c_g4; + var_i4 = 2u; + var_i3 += var_i4; + var_l7 = var_i3; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 >= var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l7; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + } + var_i0 = 25u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f73(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_L5;} + var_i0 = instance->w2c_g4; + var_l12 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_l7; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l7; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } else { + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_L34: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B35;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 3728u); + var_i2 = 1u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B35;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L34; + var_B35:; + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 -= var_i1; + var_l0 = var_i0; + } + var_i0 = 44u; + var_i1 = var_l12; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_l9 = var_i0; + var_i0 = var_l1; + var_l10 = var_i0; + var_i0 = var_l0; + var_l6 = var_i0; + } + goto var_L5; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L5; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l0; + var_i1 = 126u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 45u; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 -= var_i3; + var_i3 = 1u; + var_i2 = var_i2 <= var_i3; + var_i3 = var_l0; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 |= var_i1; + } else { + var_i0 = 0u; + } + } + if (var_i0) { + var_i0 = var_l0; + var_i1 = 126u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_L42: + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B43;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 46u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B43;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L42; + var_B43:; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = var_l3; + var_i1 = var_l2; + var_i2 = 4u; + var_i1 &= var_i2; + var_l1 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_l7; + var_i2 = 14144u; + var_i3 = 7u; + var_i4 = 25u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l2; + var_i3 = 3u; + var_i2 &= var_i3; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 3u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i3 = var_l0; + var_i4 = 4u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 0u; + var_i4 = var_i4 != var_i5; + var_i3 = var_i3 != var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + } + var_i0 = 58u; + var_i1 = var_l0; + var_i1 = !(var_i1); + if (var_i1) {goto var_B44;} + var_i0 = 18u; + var_i1 = var_l0; + var_i2 = 6u; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B44;} + var_i0 = 19u; + var_i1 = var_l0; + var_i2 = 8u; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B44;} + var_i0 = 17u; + var_B44:; + var_l1 = var_i0; + var_i0 = var_l8; + if (var_i0) { + var_i0 = 15u; + var_l1 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10536u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l12; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 15u; + var_l1 = var_i0; + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 8u; + var_i0 |= var_i1; + var_l2 = var_i0; + } else { + var_i0 = 14u; + var_i1 = var_l1; + var_i2 = var_l2; + var_i3 = 3u; + var_i2 &= var_i3; + var_i3 = 2u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + } + } + } + } + var_i0 = var_l1; + var_i1 = var_l4; + var_i2 = var_l7; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 514u; + var_i1 = var_l0; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = var_l0; + var_i1 = 3u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 4294967292u; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = var_l0; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = var_l0; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 4294967291u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i1 = 3u; + var_i0 &= var_i1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = 5u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l8; + var_i2 = var_l1; + var_i3 = 19u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 8u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l2; + var_i1 = 4294967291u; + var_i0 &= var_i1; + var_i1 = 4u; + var_i2 = 0u; + var_i3 = var_l0; + var_i4 = 6u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 |= var_i1; + var_l1 = var_i0; + var_i1 = 4294967292u; + var_i0 &= var_i1; + var_i1 = 1u; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = var_l0; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + } + var_l2 = var_i0; + } + goto var_L5; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l3; + var_l1 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 93u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + var_l3 = var_i0; + } + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g78; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g78; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g78 = var_i0; + } + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = 4294967287u; + var_i1 &= var_i2; + var_l2 = var_i1; + var_i2 = 4u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g78; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g78 = var_i0; + var_i0 = var_l2; + var_i1 = 4294967291u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } + var_i0 = 0u; + var_i1 = instance->w2c_g78; + var_i2 = var_l4; + var_i3 = instance->w2c_g0; + var_i4 = 2u; + var_i3 += var_i4; + var_i2 = var_i2 < var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B63;} + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 61u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B63;} + var_i0 = var_l4; + var_i1 = 2u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l7; + var_i2 = 43u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l7; + var_i3 = 93u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_B63:; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l1; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 2u; + var_i1 |= var_i2; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = instance->w2c_g0; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_l3 = var_i0; + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + var_i2 = var_l4; + var_i1 -= var_i2; + var_i0 += var_i1; + var_i1 = var_l5; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l5 = var_i0; + } + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l5; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = var_l2; + var_i1 = 3u; + var_i0 &= var_i1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l2; + } + var_l2 = var_i0; + } + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g78; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_l4 = var_i1; + var_i2 = var_l0; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 124u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = 3u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = var_l2; + var_i2 = var_l4; + var_i3 = var_l1; + var_i4 = 59u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 38u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + } + var_l2 = var_i0; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + } + goto var_L5; + var_B6:; + var_i0 = var_l11; + if (var_i0) { + var_i0 = 12512u; + instance->w2c_g32 = var_i0; + var_i0 = 12512u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12516u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12520u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12524u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12528u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12532u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f239(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + u64 var_l14 = 0; + v128 var_l15 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j0, var_j1, var_j2, var_j3, var_j4, var_j5; + var_i0 = instance->w2c_g7; + var_l11 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62320u; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_j0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12536u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l14 = var_j0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l3 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_j1 = var_l14; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_i0 = !(var_i0); + var_l6 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i1 = var_l0; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i1; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l8; + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B9;} + var_i0 = var_l8; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_l13 = var_i0; + var_i1 = var_l8; + var_i2 = 126u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l13; + if (var_i0) { + var_i0 = 1u; + var_l10 = var_i0; + var_i0 = var_l4; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 126u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L14: + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L17: + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L17; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + } + } + goto var_B15; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i2 = 32u; + var_i1 |= var_i2; + var_l8 = var_i1; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B15;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = var_l4; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_B15;} + var_i0 = var_l0; + var_i1 = var_l7; + var_i2 = var_l10; + var_j3 = var_l14; + var_j4 = 1ull; + var_i5 = var_l4; + var_i6 = 65u; + var_i5 -= var_i6; + var_j5 = (u64)(var_i5); + var_j4 <<= (var_j5 & 63); + var_j3 &= var_j4; + var_j4 = 0ull; + var_i3 = var_j3 != var_j4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = var_l8; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 16u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) {goto var_L14;} + var_B15:; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + } + } + var_i0 = var_l7; + var_i1 = var_l0; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_B9; + } + } + var_L22: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B23;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B23;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = var_l4; + var_i2 = var_l12; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B9;} + goto var_L22; + var_B23:; + var_i0 = var_l1; + var_B9:; + var_l0 = var_i0; + var_i1 = var_l1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 9509u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 2u); + var_l4 = var_i0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_j0 = var_l14; + var_j1 = 1ull; + var_i2 = var_l4; + var_i3 = 65u; + var_i2 -= var_i3; + var_j2 = (u64)(var_i2); + var_j1 <<= (var_j2 & 63); + var_j0 |= var_j1; + var_l14 = var_j0; + } + } + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 60u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + } + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L28: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B29;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 32u; + var_i0 &= var_i1; + if (var_i0) {goto var_B29;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L28; + var_B29:; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 94u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = !(var_i0); + var_i1 = var_l2; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + var_i2 = 22u; + var_i3 = var_l1; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i2 = var_l2; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i0 = !(var_i0); + var_i1 = 3408u; + var_i2 = var_l1; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f77(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i2; + var_i3 = 3408u; + var_i2 += var_i3; + var_i3 = 14240u; + var_i4 = 15u; + var_i5 = 55u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i1; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = 22u; + var_i1 = 58u; + var_i2 = var_l0; + var_i3 = var_l0; + var_i4 = 4u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 0u; + var_i4 = (u32)((s32)var_i4 < (s32)var_i5); + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 3408u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 0u; + var_i2 = var_l4; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = 1869901671u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = 18u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_i1 = 3408u; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 28516u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 1819042147u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 1702063205u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_l3 = var_i0; + } + var_i0 = var_l0; + var_i1 = 1819042147u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + } + } + var_i0 = var_l2; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 3984u); + var_i3 = 2u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = 35u; + var_i1 = 25u; + var_i2 = 32u; + var_i3 = 0u; + var_i4 = var_l2; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 3728u); + var_i5 = 64u; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l2; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 3728u); + var_i4 = 128u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 3984u); + var_i3 = 1u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 12536u; + instance->w2c_g32 = var_i0; + var_i0 = 12536u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12540u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12544u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12552u; + var_j1 = var_l14; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f240(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j1, var_j2; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_i1 = 8u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 7310870969309884259ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 18u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 14496u; + var_i3 = 15u; + var_i4 = 54u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l2; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 2u; + var_i0 -= var_i1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 29791u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = var_p0; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 55u; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 55u; + goto var_Bfunc; + } + var_i0 = 58u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f241(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f242(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l6 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12560u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + var_i0 = w2c_highlights_f59(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l3 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 2u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 2u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l2 = var_i1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l4; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l4; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f58(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f74(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 27u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f57(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 117u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 85u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 76u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_l0 = var_i1; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 14453u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l2 = var_i1; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f57(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = var_l0; + var_i0 = w2c_highlights_f240(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f241(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 62u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L20: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B21;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i1 = w2c_highlights_f241(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 39u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + if (var_i0) {goto var_B21;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L20; + var_B21:; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 12560u; + instance->w2c_g32 = var_i0; + var_i0 = 12560u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f243(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + u64 var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j0, var_j1, var_j2; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 14688u; + var_i3 = 31u; + var_i4 = 104u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 18u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + goto var_Bfunc; + } + var_i0 = var_l3; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = 17u; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 72057594037927935ull; + var_j0 &= var_j1; + var_l4 = var_j0; + var_j1 = 32778015450816886ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l4; + var_j2 = 32758215669408118ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 17u; + goto var_Bfunc; + } + } + var_i0 = 60u; + goto var_Bfunc; + } + var_i0 = 4294967295u; + var_i1 = var_l3; + var_i2 = var_l3; + var_i3 = 1024u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f244(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 4u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f245(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0; + v128 var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g7; + var_l7 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12568u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l5; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10799u; + var_i1 = 12074u; + var_i2 = 4u; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10812u; + var_i1 = 15914u; + var_i2 = 5u; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 96u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = var_l3; + var_i1 -= var_i2; + var_l5 = var_i1; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 120u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 3421794u; + var_i3 ^= var_i4; + var_i4 = 8u; + var_i3 <<= (var_i4 & 31); + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 34u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l2; + var_i2 = 1u; + var_i0 = w2c_highlights_f243(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = 4294967295u; + var_i1 = var_l3; + var_i2 = var_l2; + var_i3 = 0u; + var_i1 = w2c_highlights_f243(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l4; + var_i2 = var_l4; + var_i3 = 1u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l0; + var_i4 = 255u; + var_i3 &= var_i4; + var_l0 = var_i3; + var_i4 = 56u; + var_i3 = var_i3 != var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } else { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 15u; + } else { + var_i0 = 23u; + var_i1 = 55u; + var_i2 = var_l5; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l0 = var_i0; + } else { + var_i0 = var_l4; + if (var_i0) { + var_i0 = 55u; + var_i1 = 23u; + var_i2 = var_l4; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_l1 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = var_l5; + var_i3 = 58u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l1; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } else { + var_i0 = var_l5; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 55u; + var_i1 = 16u; + var_i2 = 14u; + var_i3 = var_l1; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = var_l3; + var_i1 = var_l2; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = 23u; + var_i1 = 58u; + var_i2 = var_l5; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l8; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + var_l0 = var_i0; + } + } + } + var_i0 = var_l0; + var_i1 = var_l3; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = var_l0; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 41u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l4; + var_i4 = 1u; + var_i3 = var_i3 != var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l2; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_l0 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_i1 = 0u; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l5; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l2; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 12568u; + instance->w2c_g32 = var_i0; + var_i0 = 12568u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12572u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f246(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 6u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f247(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f246(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f248(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_L0: + var_i0 = var_p1; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_p0; + var_i0 -= var_i1; + goto var_Bfunc; + } else { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L0; + } + UNREACHABLE; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f249(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + u64 var_l8 = 0; + v128 var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j1, var_j2, var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l7 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12576u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l4 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 32u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + w2c_highlights_f247(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 47u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f246(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_i1 = var_l1; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f247(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 48u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_l4 = var_i0; + var_i0 = var_l3; + var_i1 = 8u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 8u; + var_i2 = 4294967288u; + var_i3 = var_l0; + var_i4 = var_l1; + var_i5 = 91u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l1; + var_i6 = 123u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 94u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 8u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 128u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l1; + var_i4 = 126u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i5 = 64u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 46u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 34u; + var_i1 = 1u; + var_i2 = 46u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f247(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 7u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f247(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 48u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l2; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f247(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + w2c_highlights_f247(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 43u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 60u; + var_i1 = var_l0; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = var_l0; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l0; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = var_l0; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 29u; + var_i1 = 16u; + var_i2 = var_l2; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l0; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = var_l5; + var_i2 = 15072u; + var_i3 = 15u; + var_i4 = 54u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l2; + goto var_B28; + } + var_i0 = var_l5; + var_i1 = var_l0; + var_i0 -= var_i1; + var_l2 = var_i0; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 18u; + var_i1 = var_l0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 1814914665u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4u); + var_i3 = 29797u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B28;} + } + var_i0 = var_l2; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 275u; + var_i1 = 531u; + var_i2 = 4294967295u; + var_i3 = var_l0; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 72057594037927935ull; + var_j3 &= var_j4; + var_l8 = var_j3; + var_j4 = 28538298614310244ull; + var_i3 = var_j3 == var_j4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_j2 = var_l8; + var_j3 = 28554735403623780ull; + var_i2 = var_j2 == var_j3; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_B28; + } + var_i0 = var_l2; + var_i1 = 8u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 18u; + var_i1 = var_l0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8387228823428884599ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B28;} + } + var_i0 = var_l2; + var_i1 = 9u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 787u; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 8u); + var_i2 = 100u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 8245918730100827492ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + if (var_i1) {goto var_B28;} + } + var_i0 = 4294967295u; + var_B28:; + var_l2 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l2; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l3; + var_i2 = var_l4; + var_i3 = var_l3; + var_i4 = 8u; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = 255u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = 6u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 23u; + var_i1 = 55u; + var_i2 = 58u; + var_i3 = 15u; + var_i4 = var_l3; + var_i5 = 2u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l3; + var_i4 = 3u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_l3 = var_i1; + var_i1 = var_l0; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l0; + var_i1 = var_l5; + var_i2 = 47u; + var_i0 = w2c_highlights_f248(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + if (var_i0) { + var_i0 = 55u; + var_i1 = 23u; + var_i2 = var_l1; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = var_l2; + var_i2 += var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 35u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l5; + var_i2 = 46u; + var_i0 = w2c_highlights_f248(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = 23u; + } else { + var_i0 = var_l4; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = var_l0; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 60u; + } else { + var_i0 = 58u; + var_i1 = 25u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + var_i1 = var_l0; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 12576u; + instance->w2c_g32 = var_i0; + var_i0 = 12576u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12580u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f250(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_L0: + var_i0 = var_p0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L0; + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 91u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 30u; + var_i1 = var_i1 > var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 4294967295u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f251(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g4; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 12416u; + var_i1 = 93u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12417u; + var_i1 = 61u; + var_i2 = var_p0; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_p0; + var_i1 = 12417u; + var_i0 += var_i1; + var_i1 = 93u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l2; + instance->w2c_g26 = var_i0; + var_i0 = var_p1; + instance->w2c_g29 = var_i0; + var_i0 = w2c_highlights_f69(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 12416u; + var_i1 = var_l2; + var_i2 = var_p1; + w2c_highlights_f62(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + instance->w2c_g26 = var_i0; + var_i0 = 0u; + instance->w2c_g29 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f252(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_L0: + var_i0 = var_p0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l1; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f253(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = 62u; + var_i1 = 125u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i2; + var_i3 = 60u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i3 = var_l2; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i0 = !(var_i0); + if (var_i0) {goto var_B3;} + } + goto var_L2; + var_B3:; + var_i0 = 47u; + var_i1 = 58u; + var_i2 = var_l2; + var_i3 = 60u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f254(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = 34u; + var_i2 = 92u; + var_i3 = 36u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B1; + } + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_l2; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = var_l1; + var_i2 = var_l1; + var_i2 = w2c_highlights_f51(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f252(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f253(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L0; + var_B1:; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f255(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4240u); + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f256(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0; + v128 var_l10 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l8 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12584u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + } + } else { + var_i0 = 0u; + } + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l5; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f254(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 4294967295u; + var_l0 = var_i0; + var_i0 = var_l4; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f250(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 4u; + w2c_highlights_f251(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f250(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l4; + var_i1 = 44u; + w2c_highlights_f251(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l5; + var_i1 = 1u; + var_i2 = var_l2; + var_i2 = w2c_highlights_f254(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f252(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + } + if (var_i0) { + w2c_highlights_f253(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l3; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f255(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f255(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L23: + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B24;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f255(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B24;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L23; + var_B24:; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = var_l3; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = 15296u; + var_i3 = 15u; + var_i4 = 71u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = 21u; + var_i1 = 58u; + var_i2 = 6u; + var_i3 = 0u; + var_i4 = var_l2; + var_i5 = var_l0; + var_i4 = w2c_highlights_f82(instance, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l4; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l6; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 3u; + var_i1 = var_l9; + var_i2 = var_l4; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 3408u; + var_i1 = var_l2; + var_i2 = var_l0; + var_i1 = w2c_highlights_f77(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 3408u; + var_i1 += var_i2; + var_i2 = 15296u; + var_i3 = 15u; + var_i4 = 71u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = var_l2; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3408u; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 26217u; + var_i0 = var_i0 == var_i1; + goto var_B26; + } + var_i0 = var_l1; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3408u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1818847351u; + var_i0 = var_i0 == var_i1; + var_i1 = 3412u; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 101u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + goto var_B26; + } + var_i0 = var_l1; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3408u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1702063205u; + var_i0 = var_i0 == var_i1; + var_i1 = 3412u; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 26217u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + goto var_B26; + } + var_i0 = 0u; + var_B26:; + var_l6 = var_i0; + var_i0 = var_l4; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i0 = 18u; + var_i1 = 20u; + var_i2 = 14u; + var_i3 = var_l4; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l4; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_i1 = var_l2; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l7; + if (var_i0) { + var_i0 = 12584u; + instance->w2c_g32 = var_i0; + var_i0 = 12584u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12588u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12592u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12596u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f257(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 92u; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 13u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + goto var_L0; + var_B1:; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f258(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + w2c_highlights_f259(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f259(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, + var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7; + u64 var_j2, var_j3, var_j4, var_j5, var_j6; + v128 var_o0, var_o1; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12600u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + } + var_l4 = var_i0; + } + var_i0 = var_l8; + if (var_i0) { + var_i0 = var_l8; + var_i1 = 0u; + var_i2 = var_l8; + var_i3 = 24u; + var_i4 = 44u; + var_i5 = var_l8; + var_i6 = 39u; + var_i5 = var_i5 == var_i6; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i2 = w2c_highlights_f56(instance, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + } + var_i0 = var_l11; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = w2c_highlights_f257(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = 27u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_L5: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = instance->w2c_g4; + var_i4 = 10u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g4; + var_i2 = var_i2 >= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B6;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = var_l7; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l10; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l6; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l6; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l7; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l10; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l6; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l3; + var_i5 = 3u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i4 = var_l6; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = var_l7; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l3; + var_i0 = w2c_highlights_f257(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = var_l3; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f74(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 27u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L5; + } + var_i0 = 1u; + var_i1 = instance->w2c_g4; + var_l9 = var_i1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B12;} + var_i0 = 258u; + var_i1 = var_l2; + var_i2 = 82u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l9; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i2; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B12;} + var_i0 = var_l2; + var_i1 = 117u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 56u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 3u; + var_i1 = var_l9; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i1; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B12;} + var_i0 = 260u; + var_i1 = var_l1; + var_i2 = 82u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l9; + var_i3 = 3u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B12;} + } + var_i0 = var_l2; + var_i1 = 76u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 117u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 85u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 82u; + var_i1 = var_i1 == var_i2; + var_l2 = var_i1; + var_i2 = var_l9; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 39u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 259u; + var_i1 = 2u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_B12; + } + var_i0 = 0u; + var_B12:; + var_l2 = var_i0; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_l2; + var_i2 = 255u; + var_i1 &= var_i2; + var_i2 = 1u; + var_i1 -= var_i2; + var_i0 += var_i1; + var_l5 = var_i0; + var_i0 = var_l2; + var_i1 = 256u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l6 = var_i0; + var_l1 = var_i0; + var_L19: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B18;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B20;} + var_i0 = var_l2; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 32u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 92u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = var_l6; + var_i2 -= var_i3; + var_i3 = 16u; + var_i2 = var_i2 >= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B18;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L19; + var_B20:; + var_i0 = var_l1; + var_i1 = var_l6; + var_i0 -= var_i1; + var_l8 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L21: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 41u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_i8x16_eq(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_l1 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i0 -= var_i1; + var_l2 = var_i0; + var_i1 = 16u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i2 = var_l2; + var_i1 <<= (var_i2 & 31); + var_i2 = 1u; + var_i1 -= var_i2; + var_i0 &= var_i1; + var_l1 = var_i0; + } + var_L24: + var_i0 = var_l1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + var_i2 = I32_CTZ(var_i2); + var_i1 += var_i2; + var_l9 = var_i1; + var_i2 = var_l8; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_L27: + var_i0 = var_l5; + var_i1 = var_l8; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l5; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l5; + var_i2 = var_l6; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + goto var_L27; + } + } else { + var_i0 = 1u; + } + var_i1 = var_l8; + var_i2 = var_l9; + var_i1 += var_i2; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = var_l8; + var_i2 = 2u; + var_i1 += var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + goto var_B16; + } + } + var_i0 = var_l1; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 -= var_i2; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L24; + } + var_i0 = var_l2; + var_i1 = 16u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 16u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L21; + } + } + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 12416u; + var_i1 = 41u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12417u; + var_i1 = var_l6; + var_i2 = var_l8; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l8; + var_i1 = 12417u; + var_i0 += var_i1; + var_i1 = 34u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12416u; + var_i1 = var_l8; + var_i2 = 2u; + var_i1 += var_i2; + var_i2 = 44u; + w2c_highlights_f62(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + goto var_B16; + var_B18:; + } + var_i0 = var_l5; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 24u; + var_i4 = 44u; + var_i5 = var_l2; + var_i6 = 39u; + var_i5 = var_i5 == var_i6; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i4 = var_l3; + var_i5 = 1u; + var_i2 = w2c_highlights_f56(instance, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_B16:; + var_l8 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L5; + } + var_i0 = var_l7; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g0; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = var_l6; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L5; + } + var_i0 = var_p0; + var_i1 = var_l6; + var_i2 = var_l3; + var_i1 -= var_i2; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = 18u; + var_i2 = var_l3; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 7310870969309884259ull; + var_i2 = var_j2 == var_j3; + if (var_i2) {goto var_B36;} + var_i1 = 56u; + var_i2 = var_l3; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 8385476227730860131ull; + var_i2 = var_j2 == var_j3; + if (var_i2) {goto var_B36;} + } + var_i1 = var_l3; + var_i2 = var_l6; + var_i3 = 15552u; + var_i4 = 31u; + var_i5 = 96u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B36:; + var_l1 = var_i1; + var_i2 = 0u; + var_i1 = (u32)((s32)var_i1 < (s32)var_i2); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 56u; + var_i1 = 17u; + var_i2 = 17u; + var_i3 = var_l3; + var_i4 = var_l6; + var_i5 = 16320u; + var_i6 = 7u; + var_i7 = 32u; + var_i3 = w2c_highlights_f76(instance, var_i3, var_i4, var_i5, var_i6, var_i7); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l3; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 7305798977753210719ull; + var_i4 = var_j4 == var_j5; + var_i5 = var_l3; + var_j5 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5)); + var_j6 = 7234314139130355551ull; + var_i5 = var_j5 == var_j6; + var_i4 |= var_i5; + var_i5 = var_l3; + var_i5 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5) + 8u); + var_i6 = 24415u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i5 = var_l6; + var_i6 = var_l3; + var_i5 -= var_i6; + var_l2 = var_i5; + var_i6 = 10u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l3; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 8u); + var_i4 = 1600091235u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l3; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 7598263560299503455ull; + var_i4 = var_j4 == var_j5; + var_i3 &= var_i4; + var_i4 = var_l3; + var_i4 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 8u); + var_i5 = 1600087406u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l3; + var_j5 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5)); + var_j6 = 7596568070587309919ull; + var_i5 = var_j5 == var_j6; + var_i4 &= var_i5; + var_i3 |= var_i4; + var_i4 = var_l2; + var_i5 = 12u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 8u); + var_i3 = 7626612u; + var_i2 ^= var_i3; + var_i3 = 8u; + var_i2 <<= (var_i3 & 31); + var_i2 = !(var_i2); + var_i3 = var_l3; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 7954894357178643811ull; + var_i3 = var_j3 == var_j4; + var_i2 &= var_i3; + var_i3 = var_l2; + var_i4 = 11u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l1; + var_i1 = 255u; + var_i0 &= var_i1; + var_l4 = var_i0; + var_i0 = var_l1; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l2 = var_i0; + if (var_i0) { + var_i0 = var_l2; + var_l5 = var_i0; + } + } else { + var_i0 = var_l6; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l9 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l9; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 23u; + var_l4 = var_i0; + } else { + var_i0 = 57u; + var_i1 = 23u; + var_i2 = 55u; + var_i3 = var_l5; + var_i4 = 3u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l5; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } + } else { + var_i0 = var_p0; + var_i1 = var_l9; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 3947580u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + var_i2 = instance->w2c_g3; + var_i3 = var_l9; + var_i4 = 3u; + var_i3 += var_i4; + var_i2 = var_i2 >= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 14u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = var_l4; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 23u; + var_i1 = 55u; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 22u; + } else { + var_i0 = var_l3; + var_i1 = var_l6; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + } + var_l4 = var_i0; + } + } + var_i0 = var_l4; + var_i1 = var_l3; + var_i2 = var_l6; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L5; + } + var_i0 = var_l7; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l10; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l7; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_L49: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B50;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B51;} + var_i0 = var_l4; + var_i0 = !(var_i0); + var_i1 = var_l2; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + goto var_B51; + } + var_i0 = var_l2; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 32u; + var_i1 |= var_i2; + var_l1 = var_i1; + var_i2 = 101u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 112u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B50;} + var_B51:; + var_i0 = var_l2; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L49; + var_B50:; + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L5; + } + var_i0 = var_l7; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = var_l7; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l7; + var_i4 = 125u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + goto var_L5; + } + var_i0 = var_l7; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l10; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_l2 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_i1 = 0u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + goto var_L5; + } else { + var_i0 = var_l7; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i1 = var_l6; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l10; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 2u; + var_i3 = var_l2; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } + var_l4 = var_i0; + var_i0 = 1u; + } else { + var_i0 = var_l7; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i1 = var_l7; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = 1u; + } else { + var_i0 = var_l7; + var_i0 = w2c_highlights_f241(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l7; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l10; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 1u; + var_l4 = var_i0; + } else { + var_i0 = var_l10; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l7; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = var_l10; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = var_l10; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l7; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + } + } + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L64: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B65;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l2; + var_i2 = w2c_highlights_f241(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4240u); + var_i2 = 1u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B65;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L64; + var_B65:; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 1u; + } + } + } + var_l1 = var_i0; + goto var_L5; + } + UNREACHABLE; + var_B6:; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 12600u; + instance->w2c_g32 = var_i0; + var_i0 = 12600u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12604u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12608u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12612u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12616u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f260(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0, var_l18 = 0, var_l19 = 0, var_l20 = 0, var_l21 = 0, var_l22 = 0; + v128 var_l23 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j2, var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l21 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l17 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62344u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62348u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l14 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12624u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l17 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l15 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 36u); + var_l14 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 40u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + } else { + var_i0 = 0u; + } + } + var_l7 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l21; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l17; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62344u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62348u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l7; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + goto var_B4; + } + var_i0 = var_l7; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l8; + var_i1 = instance->w2c_g4; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l11; + var_i0 = !(var_i0); + var_i1 = var_l7; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + var_l9 = var_i0; + var_L9: + var_i0 = var_l9; + var_i1 = var_l1; + var_i2 = 4u; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 34u; + var_i2 = 123u; + var_i3 = 125u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l3; + } + } else { + var_i0 = instance->w2c_g3; + } + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i2 = 125u; + var_i3 = 34u; + var_i4 = var_l1; + var_i5 = 4u; + var_i4 = var_i4 >= var_i5; + var_l16 = var_i4; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l1; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 4u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_l0 = var_i3; + var_i4 = var_l0; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = var_l16; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l0 = var_i1; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_B8; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + } + var_i0 = var_l1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + } + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l1; + var_i4 = 3u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + goto var_B10; + } + var_i0 = var_l0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = var_l0; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = 3u; + var_i1 = var_l8; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l0 = var_i2; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = instance->w2c_g4; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + goto var_L9; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + goto var_B8; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + UNREACHABLE; + var_B10:; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l8; + var_B8:; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l8 = var_i0; + var_i0 = var_l7; + var_i1 = 256u; + var_i0 = var_i0 < var_i1; + var_i1 = var_l7; + var_i2 = 4u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l13; + var_l7 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l13 = var_i0; + } + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = var_l7; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + } + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_l13 = var_i0; + var_i0 = 1u; + var_l11 = var_i0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = var_l7; + var_i2 = 255u; + var_i1 &= var_i2; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l7; + } + } + var_l7 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_l18 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l18; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l15 = var_i0; + var_i0 = 1u; + var_l14 = var_i0; + } + var_i0 = var_l18; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l1; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l1; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 3u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l14; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 27u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l14 = var_i0; + goto var_L3; + } + var_i0 = var_l14; + var_l1 = var_i0; + var_i0 = 0u; + var_l14 = var_i0; + var_i0 = var_l6; + var_i1 = 1u; + var_i0 &= var_i1; + var_l19 = var_i0; + var_i0 = var_l6; + var_i1 = 4294967294u; + var_i0 &= var_i1; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_l20 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l16 = var_i0; + var_L32: + var_i0 = var_l9; + var_i1 = var_l20; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l22 = var_i0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l16; + var_i1 = 1u; + var_i0 |= var_i1; + } else { + var_i0 = var_l22; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l16; + var_i1 = 2u; + var_i0 |= var_i1; + } else { + goto var_B33; + } + } + var_l16 = var_i0; + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_l9 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L32;} + var_B33:; + var_i0 = 0u; + var_i1 = var_l9; + var_i2 = var_l20; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B31;} + var_i0 = var_l16; + var_i1 = var_l9; + var_i2 = 4u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_i1 = 256u; + var_i0 |= var_i1; + var_B31:; + var_l9 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l9; + var_i2 = 4u; + var_i1 >>= (var_i2 & 31); + var_i2 = 3u; + var_i1 &= var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 3u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_l9; + var_i3 = 2u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_i1 = var_l9; + var_i2 = 1u; + var_i1 &= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_l7 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l8 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l9 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 4294967295u; + } else { + var_i0 = var_l2; + var_i1 = var_l9; + var_i2 = 15904u; + var_i3 = 31u; + var_i4 = 112u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 19u; + var_i1 = var_l9; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 435710945399ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B42;} + } + var_i0 = var_l1; + var_B42:; + } + var_l1 = var_i0; + var_i1 = 1023u; + var_i0 = (u32)((s32)var_i0 > (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l1; + var_i1 = 4294967295u; + var_i2 = var_l6; + var_i3 = 4294967294u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = 1024u; + var_i1 &= var_i2; + if (var_i1) {goto var_B45;} + var_i0 = var_l1; + var_i1 = 2048u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 4294967295u; + var_i2 = var_l3; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_B45; + } + var_i0 = var_l1; + var_i1 = 4096u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l19; + var_i2 = var_l3; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 62u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l3; + var_i3 = !(var_i3); + var_i4 = var_l3; + var_i5 = 59u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l3; + var_i5 = 10u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l3; + var_i6 = 13u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i5 = var_l3; + var_i6 = 123u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B45;} + var_i0 = 4294967295u; + goto var_B45; + } + var_i0 = 4294967295u; + var_i1 = var_l3; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + if (var_i1) {goto var_B45;} + var_i0 = var_l0; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 4294967295u; + var_i1 = var_l0; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l3 = var_i1; + var_i2 = 29545u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 29537u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 28265u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B45;} + } + var_i0 = 4294967295u; + var_i1 = var_l1; + var_i2 = var_l0; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 1752459639u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 4u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = w2c_highlights_f47(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_B45:; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = 3u; + var_i1 = var_l1; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i2 = 3u; + var_i1 &= var_i2; + var_i2 = var_l9; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 109304575259763ull; + var_j3 ^= var_j4; + var_j4 = 16ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i3 = var_l10; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i0 = var_l6; + var_i1 = 2u; + var_i0 |= var_i1; + var_i1 = var_l6; + var_i2 = var_l1; + var_i3 = 2048u; + var_i2 &= var_i3; + var_i3 = 0u; + var_i4 = var_l6; + var_i5 = 2u; + var_i4 = var_i4 < var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = var_l19; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i3 = 19u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = var_l1; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i1 = 56u; + var_i0 = var_i0 == var_i1; + var_l4 = var_i0; + } else { + var_i0 = var_l15; + if (var_i0) { + var_i0 = 1u; + var_i1 = 58u; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } else { + var_i0 = var_l10; + if (var_i0) { + var_i0 = 55u; + var_i1 = 23u; + var_i2 = var_l10; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_l4 = var_i2; + var_i3 = var_l10; + var_i4 = 3u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 46u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_i1 = var_l10; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 46u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + } else { + var_i0 = var_l5; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 16u; + } else { + var_i0 = 55u; + var_i1 = 29u; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_l4 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l1 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 15u; + var_i1 = 14u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } else { + var_i0 = var_l2; + var_i1 = var_l9; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 6u; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_l4 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l1 = var_i0; + } + } + } + } + } + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = var_l9; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l15; + var_i2 = var_l0; + var_i3 = 91u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 93u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l15 = var_i0; + var_i0 = var_l6; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_l1 = var_i1; + var_i2 = var_l0; + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_l5 = var_i2; + var_i3 = var_l0; + var_i4 = 93u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_l6 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = var_l6; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i1 = 2u; + var_i0 -= var_i1; + var_i1 = var_l1; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l11; + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4240u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l12; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l12; + var_i3 = var_l0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 4240u); + var_i4 = 4u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l12 = var_i1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l12; + var_i1 = 1u; + var_i0 -= var_i1; + var_l12 = var_i0; + } + var_i0 = var_l11; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l11; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = var_l0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l11; + var_i1 = 1u; + var_i0 -= var_i1; + var_l11 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l13; + var_l7 = var_i0; + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = instance->w2c_g4; + var_l8 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = 93u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = var_l1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l6; + var_i2 = var_l6; + var_i3 = 4u; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l12; + var_i0 = !(var_i0); + var_i1 = var_l11; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 58u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l8 = var_i0; + var_i0 = var_l13; + var_i1 = 255u; + var_i0 &= var_i1; + var_i1 = 3u; + var_i0 += var_i1; + var_l7 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l3; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_l5 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i1 = var_l3; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_l1 = var_i1; + var_i2 = var_l0; + var_i3 = 63u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i4 = 62u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l5; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = var_l3; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } + var_l5 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4240u); + var_i1 = 4u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l4; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = var_l18; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f80(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + } + var_l4 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l17; + if (var_i0) { + var_i0 = 12624u; + instance->w2c_g32 = var_i0; + var_i0 = 12624u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12628u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12632u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12636u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12640u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12644u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12648u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12652u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12656u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12660u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12664u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f261(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 1u; + w2c_highlights_f259(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f262(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0; + v128 var_l16 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l15 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12672u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l13 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + } else { + var_i0 = 0u; + } + } + var_l6 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l15; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l6; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + goto var_B4; + } + var_i0 = var_l6; + var_i1 = 255u; + var_i0 &= var_i1; + var_l4 = var_i0; + var_i0 = var_l6; + var_i1 = 256u; + var_i0 &= var_i1; + var_l10 = var_i0; + var_i0 = var_l6; + var_i1 = 512u; + var_i0 &= var_i1; + var_l14 = var_i0; + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_l4; + var_i3 = var_l14; + var_i3 = !(var_i3); + var_i4 = var_l10; + var_i4 = !(var_i4); + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 0u; + var_i2 = var_l14; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i2 = 36u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = var_l1; + var_i3 = var_l2; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l4; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l4; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l10; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + goto var_B10; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l11; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l11; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = var_l11; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + var_i1 = var_l7; + var_i2 = var_l0; + var_i2 = w2c_highlights_f84(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L9; + } + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = var_l9; + var_i0 = w2c_highlights_f85(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) {goto var_L9;} + var_i0 = 2u; + goto var_B8; + var_B10:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l7; + var_B8:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_l12 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i0 = !(var_i0); + var_i1 = var_l6; + var_i2 = 256u; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l6; + } + } + var_l6 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_l10 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l10; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l2; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10799u; + var_i1 = 12074u; + var_i2 = 5u; + var_i3 = 4u; + var_i4 = var_l2; + var_i5 = 42u; + var_i4 = var_i4 == var_i5; + var_i5 = instance->w2c_g4; + var_i6 = 3u; + var_i5 += var_i6; + var_i5 = w2c_highlights_f83(instance, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i6 = 47u; + var_i5 = var_i5 != var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 114u; + var_i0 = var_i0 == var_i1; + var_l11 = var_i0; + var_i1 = var_l0; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l11; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_l1 = var_i0; + var_i0 = var_l2; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 512u; + var_l6 = var_i0; + } + var_i0 = var_l1; + var_i1 = var_l6; + var_i0 |= var_i1; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = var_l2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 256u; + var_i0 |= var_i1; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 44u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l10 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l4; + var_i1 = var_l10; + var_i2 = 16512u; + var_i3 = 31u; + var_i4 = 82u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 11u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l2; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 34u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 39u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l0; + var_i5 = 11u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + var_i0 = 4294967295u; + var_i1 = var_l0; + var_i1 = !(var_i1); + if (var_i1) {goto var_B25;} + var_i0 = 18u; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 20u; + var_i1 = var_l0; + var_i2 = 11u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 18u; + var_i1 = var_l0; + var_i2 = 12u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i1 = 19u; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 3u; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 20u; + var_i1 = var_l0; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 19u; + var_i1 = var_l0; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 56u; + var_i1 = var_l0; + var_i2 = 6u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 3u; + var_i1 = var_l0; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 7u; + var_i1 = var_l0; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 60u; + var_i1 = var_l0; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B25;} + var_i0 = 21u; + var_B25:; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l8; + var_i1 = var_l0; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 56u; + var_i0 = var_i0 == var_i1; + var_l3 = var_i0; + } else { + var_i0 = var_l8; + if (var_i0) { + var_i0 = 55u; + var_i1 = 15u; + var_i2 = var_l8; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_l3 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + } else { + var_i0 = var_l5; + if (var_i0) { + var_i0 = var_l2; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 16u; + } else { + var_i0 = 55u; + var_i1 = 29u; + var_i2 = var_l1; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_l3 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l0 = var_i0; + } else { + var_i0 = var_l2; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 55u; + var_i1 = 15u; + var_i2 = 14u; + var_i3 = var_l3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } else { + var_i0 = var_l4; + var_i1 = var_l10; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 6u; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l1; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_l3 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l0 = var_i0; + } + } + } + } + var_i0 = var_l0; + var_i1 = var_l4; + var_i2 = var_l10; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l9; + var_i2 = var_l1; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l1; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l12; + var_l6 = var_i0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l1; + var_i1 = 91u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 93u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l11 = var_i0; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l5; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + } + var_l5 = var_i0; + var_i0 = var_l3; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 126u; + var_i1 = var_i1 == var_i2; + var_l5 = var_i1; + var_i2 = var_l0; + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } else { + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4240u); + var_i1 = 4u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l1; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = var_l1; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + } + var_i0 = 25u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l3; + var_i1 = 0u; + var_i2 = var_l4; + var_i3 = var_l10; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i2 = var_l4; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f80(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + } + } + var_l3 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l13; + if (var_i0) { + var_i0 = 12672u; + instance->w2c_g32 = var_i0; + var_i0 = 12672u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12676u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12680u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12684u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12688u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12692u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12696u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f263(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f264(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f265(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j0, var_j1, var_j2, var_j3, var_j4, var_j5, var_j6; + var_i0 = instance->w2c_g7; + var_l6 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12704u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + instance->w2c_g24 = var_i0; + } + } + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i1 = var_l1; + var_i0 -= var_i1; + var_l3 = var_i0; + var_i0 = var_l4; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 3u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = var_l4; + var_i1 = 65793u; + var_i0 *= var_i1; + var_i1 = var_l1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 16777215u; + var_i1 &= var_i2; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 3u); + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 4u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L8: + var_i0 = var_l0; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B9;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l4; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B9;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L8; + var_B9:; + } + var_i0 = 40u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 10u; + var_i1 = 9u; + var_i2 = var_l4; + var_i3 = 43u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l0; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = var_l1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 16448u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 2u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = var_l4; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = var_l4; + var_i1 = 110u; + var_i0 -= var_i1; + var_i1 = 1u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l4; + var_i2 = 114u; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l4; + var_i2 = 105u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l4; + var_i2 = 99u; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l4; + var_i2 = 66u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1717987684u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 4u; + var_i2 += var_i3; + var_l0 = var_i2; + var_i3 = var_l2; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 4u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = var_l0; + var_i2 = var_l2; + var_i1 = w2c_highlights_f263(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i1; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_l1 = var_i0; + var_L14: + var_i0 = var_l0; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B15;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_B15;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L14; + var_B15:; + var_i0 = 59u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = var_l1; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 517097156201ull; + var_j0 ^= var_j1; + var_j1 = 24ull; + var_j0 <<= (var_j1 & 63); + var_i0 = !(var_j0); + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 5u); + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 5u; + var_i2 += var_i3; + var_l0 = var_i2; + var_i3 = var_l2; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 5u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = var_l0; + var_i2 = var_l2; + var_i1 = w2c_highlights_f263(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i1; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = 6u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 11822u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = 2u; + var_i1 += var_i2; + var_i2 = var_l2; + var_i1 = var_i1 > var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = 2u; + var_i2 += var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = var_l2; + var_i2 = var_l0; + var_i1 -= var_i2; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = var_l0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = 6u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = var_l1; + var_i2 = var_l2; + var_i1 = w2c_highlights_f263(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i1; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = var_l2; + var_i2 = w2c_highlights_f264(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = var_l1; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 7598242639580588403ull; + var_i0 = var_j0 == var_j1; + var_i1 = var_l1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 8u); + var_j2 = 8675450682572044660ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 16u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 22u; + var_i1 = var_l1; + var_i2 = var_l1; + var_i3 = 16u; + var_i2 += var_i3; + var_i3 = var_l2; + var_i2 = w2c_highlights_f263(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = var_l2; + var_i2 = w2c_highlights_f264(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = var_l2; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 22u; + var_i1 = var_l0; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = var_l1; + var_i1 = 8u; + var_i0 += var_i1; + var_i1 = var_l1; + var_i2 = 17u; + var_i1 += var_i2; + var_i2 = var_l1; + var_i3 = 13u; + var_i2 += var_i3; + var_i3 = 0u; + var_i4 = var_l1; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 7308332182667748718ull; + var_i4 = var_j4 == var_j5; + var_i5 = var_l1; + var_j5 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5) + 8u); + var_j6 = 435476720928ull; + var_j5 ^= var_j6; + var_j6 = 24ull; + var_j5 <<= (var_j6 & 63); + var_i5 = !(var_j5); + var_i4 &= var_i5; + var_i5 = var_l3; + var_i6 = 13u; + var_i5 = var_i5 >= var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l1; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 16u); + var_i4 = 101u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 8u); + var_j5 = 7237123112115661158ull; + var_i4 = var_j4 == var_j5; + var_i3 &= var_i4; + var_i4 = var_l1; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 2334102057476973924ull; + var_i4 = var_j4 == var_j5; + var_i3 &= var_i4; + var_i4 = var_l3; + var_i5 = 17u; + var_i4 = var_i4 >= var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 7306087009988601198ull; + var_i2 = var_j2 == var_j3; + var_i3 = var_l1; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 7306087009987357807ull; + var_i3 = var_j3 == var_j4; + var_i2 |= var_i3; + var_i3 = var_l3; + var_i4 = 8u; + var_i3 = var_i3 >= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + if (var_i0) { + var_i0 = 22u; + var_i1 = var_l1; + var_i2 = var_l0; + var_i3 = var_l2; + var_i2 = w2c_highlights_f263(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = var_l2; + var_i2 = w2c_highlights_f264(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 22u; + var_i1 = var_l0; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = var_l1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = 7171954u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + var_i1 = var_l1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 7358993311583855986ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 11u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 9u; + var_i1 = var_i1 >= var_i2; + var_l0 = var_i1; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 8u); + var_i3 = 111u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 8367799628114847090ull; + var_i3 = var_j3 == var_j4; + var_i2 &= var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = var_l1; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 8u); + var_i4 = 109u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 8030593375217413987ull; + var_i4 = var_j4 == var_j5; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i3 = var_l3; + var_i4 = 7u; + var_i3 = var_i3 >= var_i4; + var_i4 = var_l1; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 31371405240069987ull; + var_j4 ^= var_j5; + var_j5 = 8ull; + var_j4 <<= (var_j5 & 63); + var_i4 = !(var_j4); + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 22u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + var_i0 = var_l1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = 1936026729u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 7359015323291248962ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 12u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 22u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B5; + } + } + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B5:; + var_i0 = instance->w2c_g4; + var_L25: + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B26;} + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l0 = var_i1; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B26;} + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + goto var_L25; + var_B26:; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l5; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f266(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = 3408u; + var_i1 = var_p0; + var_i2 = var_p1; + var_i1 = w2c_highlights_f77(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 3408u; + var_i1 += var_i2; + var_i2 = 16800u; + var_i3 = 3u; + var_i4 = 19u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f267(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l4; + var_i2 = 13u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l4; + var_i1 = 13u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_p0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i0 = var_p3; + if (var_i0) { + var_i0 = var_p0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + } + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = var_p2; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_L6: + var_i0 = var_l5; + var_i0 = !(var_i0); + var_i1 = var_p2; + var_i2 = var_l4; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l4; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i2 = var_l4; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + goto var_L6; + } + var_i0 = var_l5; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_p2; + var_i0 += var_i1; + var_i1 = 0u; + var_i0 = w2c_highlights_f66(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + } + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l5; + var_i0 = !(var_i0); + if (var_i0) {goto var_L3;} + } + var_i0 = 44u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_p1; + var_i1 = var_p2; + var_i2 = var_p3; + var_i3 = 1u; + var_i2 <<= (var_i3 & 31); + var_i3 = 44u; + w2c_highlights_f67(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f268(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i1 = 13u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l0; + } + var_l0 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f269(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i2 = 125u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f270(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4240u); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f271(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + v128 var_l14 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l5 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12704u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l11 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + } + } else { + var_i0 = 0u; + } + } + var_l8 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l9 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l9; + var_i1 = var_l8; + var_i2 = var_l6; + var_i3 = var_l7; + var_i0 = w2c_highlights_f267(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l6; + var_i1 = 0u; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + } + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l5; + var_i1 = 2u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l1; + } + var_l1 = var_i0; + } + var_i0 = var_l9; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f266(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l3; + var_i2 = 3u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = 4u; + var_i2 = 2u; + var_i3 = 3u; + var_i4 = var_l3; + var_i5 = 1u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l3; + var_i4 = 4u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = instance->w2c_g4; + var_i3 = var_l0; + var_i2 -= var_i3; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 538976288u; + var_i3 |= var_i4; + var_i4 = 1836020326u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + } else { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 3u; + var_i1 = var_l4; + var_i2 = var_l4; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + goto var_L3; + } + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l2; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f268(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 2u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = w2c_highlights_f269(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 58u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + } + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 59u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = var_l4; + var_i2 = 2u; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L21: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B22;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_B22;} + var_i0 = var_l0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f269(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + goto var_L21; + } + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L21; + var_B22:; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_l7 = var_i0; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i0 += var_i1; + var_l12 = var_i0; + var_l3 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l10; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + } else { + var_i0 = 0u; + var_l10 = var_i0; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = var_l12; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_l8 = var_i1; + var_i0 -= var_i1; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l10; + var_i0 = var_i0 == var_i1; + var_i1 = var_l10; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 47u; + var_i1 = var_l12; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + var_i1 = w2c_highlights_f266(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 14u; + var_i1 = 0u; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = var_l9; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f270(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L35: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f270(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L35; + } + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = var_l2; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 124u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l2; + var_i4 = 59u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l4; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l11; + if (var_i0) { + var_i0 = 12704u; + instance->w2c_g32 = var_i0; + var_i0 = 12704u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12708u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12712u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12716u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12720u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12724u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f272(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 41u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 93u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 125u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 62u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f273(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4240u); + var_i1 = 6u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f274(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0, var_l18 = 0; + v128 var_l19 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7, + var_i8, var_i9, var_i10; + u64 var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l18 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12728u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l15 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l14 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + } + } else { + var_i0 = 0u; + } + } + var_l7 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l18; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l7; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + goto var_B4; + } + var_i0 = var_l6; + var_i1 = instance->w2c_g4; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = 0u; + var_l17 = var_i0; + var_i0 = var_l7; + var_i1 = 255u; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = var_l7; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 255u; + var_i0 &= var_i1; + var_l4 = var_i0; + var_i0 = 46u; + var_i1 = 5u; + var_i2 = 48u; + var_i3 = 44u; + var_i4 = var_l7; + var_i5 = 16u; + var_i4 >>= (var_i5 & 31); + var_l0 = var_i4; + var_i5 = 128u; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l0; + var_i4 = 4u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 32u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l16 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_l12 = var_i0; + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_l3; + var_i3 = var_l0; + var_i4 = 65u; + var_i3 &= var_i4; + var_i4 = var_l0; + var_i5 = 16u; + var_i4 &= var_i5; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l12; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 35u; + var_i2 = var_l3; + var_i3 = var_l0; + var_i4 = 1u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l4; + var_i3 = var_l3; + var_i4 = var_l4; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + } + var_i0 = var_l12; + var_i1 = var_l1; + var_i2 = var_l1; + var_i3 = var_l12; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i1 = var_l3; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 -= var_i1; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l0; + var_i2 = 8u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l0; + var_i4 = 8u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_l17 = var_i0; + goto var_B10; + } + var_i0 = var_l4; + var_i1 = var_l11; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l11; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l11; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = var_l11; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l4; + var_i4 = var_l11; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_i5 = 0u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i4 = var_l3; + var_i5 = var_l11; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l16; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l6; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + goto var_L9; + } + var_i0 = var_l9; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l16; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 -= var_i2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = 2u; + var_i0 |= var_i1; + goto var_B8; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + UNREACHABLE; + var_B10:; + var_i0 = var_l16; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l17; + var_i1 = var_l5; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_B8:; + var_l0 = var_i0; + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 3u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_l13 = var_i0; + var_i0 = var_l5; + var_l14 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l7; + var_i1 = 1048576u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l7; + } + } + var_l7 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l0; + var_i2 = var_l4; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = var_l1; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = instance->w2c_g4; + var_i2 = 3u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + var_i1 = 9u; + } else { + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + var_i1 = 17u; + } + var_i2 = var_l10; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i2 = 16u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_l7 = var_i0; + var_i0 = 5u; + var_i1 = 44u; + var_i2 = var_l10; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_i1 = var_l1; + var_i2 = 128u; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 32u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_i2 = 32u; + var_i1 |= var_i2; + var_l12 = var_i1; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 126u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f272(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i2; + var_i3 = var_l1; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = 3u; + var_i1 = 66u; + var_i2 = var_l4; + var_i3 = 97u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = var_l12; + var_i3 = 114u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l7; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l5; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 39u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 8u; + var_i0 |= var_i1; + var_l2 = var_i0; + } + var_i0 = 46u; + var_i1 = 44u; + var_i2 = var_l2; + var_i3 = 32u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i1 = var_l7; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 16u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_l7 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 58u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 48u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i1 = 9502720u; + var_i0 |= var_i1; + var_l7 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 48u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f273(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L33: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f273(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L33; + } + var_i0 = 48u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 6516580u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = var_l3; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + var_l10 = var_i0; + var_i0 = 1u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 32u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 13u; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = var_l1; + } + } + var_l1 = var_i0; + if (var_i0) { + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = !(var_i1); + var_i2 = var_l4; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 48u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = 4294967295u; + var_i1 = var_l3; + var_i2 = var_l4; + var_i3 = 16864u; + var_i4 = 15u; + var_i5 = 46u; + var_i1 = w2c_highlights_f75(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i1; + var_i1 = !(var_i1); + if (var_i1) { + var_i1 = 60u; + var_i2 = var_l3; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 24415u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l4; + var_i4 = 2u; + var_i3 -= var_i4; + var_i3 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 24415u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l4; + var_i4 = var_l3; + var_i3 -= var_i4; + var_l1 = var_i3; + var_i4 = 5u; + var_i3 = var_i3 >= var_i4; + var_i2 &= var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 18u; + var_i2 = var_l1; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 28559167692432754ull; + var_j3 ^= var_j4; + var_j4 = 8ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 4294967295u; + goto var_B43; + } + var_i1 = 18u; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 275u; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 531u; + var_i2 = var_l1; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 19u; + var_i2 = var_l1; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 20u; + var_i2 = var_l1; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 21u; + var_i2 = var_l1; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 3u; + var_i2 = var_l1; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 7u; + var_i2 = var_l1; + var_i3 = 8u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B43;} + var_i1 = 60u; + var_B43:; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l1; + var_i1 = 255u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l8 = var_i0; + } else { + var_i0 = var_l8; + if (var_i0) { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l8; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_i1 = var_l8; + var_i2 = var_l8; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + } else { + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l2; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = 14u; + var_i1 = 58u; + var_i2 = var_l4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 34u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 39u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l0; + var_i5 = 1u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = w2c_highlights_f46(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = var_l1; + var_i6 = 58u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i5 = var_l1; + var_i5 = w2c_highlights_f46(instance, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i6 = var_l0; + var_l2 = var_i6; + var_L49: + var_i6 = var_l2; + var_i7 = instance->w2c_g3; + var_i6 = var_i6 >= var_i7; + if (var_i6) {goto var_B50;} + var_i6 = var_l2; + var_i6 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i6)); + var_i6 = w2c_highlights_f47(instance, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i6 = !(var_i6); + if (var_i6) {goto var_B50;} + var_i6 = var_l2; + var_i7 = 1u; + var_i6 += var_i7; + var_l2 = var_i6; + goto var_L49; + var_B50:; + var_i6 = var_l0; + var_i7 = var_l2; + var_i8 = 16864u; + var_i9 = 15u; + var_i10 = 46u; + var_i6 = w2c_highlights_f75(instance, var_i6, var_i7, var_i8, var_i9, var_i10); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i6 = !(var_i6); + var_i5 &= var_i6; + var_i6 = var_l1; + var_i7 = 64u; + var_i6 = var_i6 == var_i7; + var_i5 |= var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i4 = var_l0; + var_i5 = var_l4; + var_i4 = var_i4 > var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + var_l2 = var_i0; + } + } + var_i0 = var_l2; + var_i1 = var_l3; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l9; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l13; + var_l7 = var_i0; + var_i0 = var_l14; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 46u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 60u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f273(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_L61: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f273(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L61; + } + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l15; + if (var_i0) { + var_i0 = 12728u; + instance->w2c_g32 = var_i0; + var_i0 = 12728u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12732u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12736u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12740u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12744u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12748u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12752u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12756u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12760u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f275(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0; + v128 var_l13 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l12 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12768u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l11 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + } + } else { + var_i0 = 0u; + } + } + var_l9 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l12; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l9; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L7: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_l9; + var_i3 = 1u; + var_i4 = var_l3; + var_i4 = !(var_i4); + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B8;} + var_i0 = var_l3; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 3472u); + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + goto var_B8; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 117u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 3u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = 6u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = var_l5; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 45u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + } else { + var_i0 = var_l3; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_B8; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L7; + var_B8:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 10u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i1; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 11643u; + var_i1 = 32045u; + var_i2 = 5u; + var_i3 = 4u; + var_i4 = var_l1; + var_i5 = 2u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 124u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l7 = var_i0; + var_i0 = var_l5; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_l9 = var_i1; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l3 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4294967295u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + var_l10 = var_i2; + var_i3 = 17024u; + var_i4 = 7u; + var_i5 = 29u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l2; + var_i3 = var_l0; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i1 = 276u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l8 = var_i0; + } else { + var_i0 = var_l8; + var_i1 = var_l10; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 29537u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l2 = var_i0; + } else { + var_i0 = 0u; + var_i1 = var_l8; + var_i2 = var_l0; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 > var_i3; + var_i3 = var_l4; + var_i4 = 0u; + var_i3 = (u32)((s32)var_i3 >= (s32)var_i4); + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + } + } + var_i0 = var_l4; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l4; + var_i1 = 255u; + var_i0 &= var_i1; + var_l5 = var_i0; + var_i0 = var_l4; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_l2 = var_i0; + } + } else { + var_i0 = var_l2; + if (var_i0) { + var_i0 = 23u; + var_i1 = 55u; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l10; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 23u; + var_i1 = 55u; + var_i2 = var_l10; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 29u; + var_i1 = 58u; + var_i2 = 15u; + var_i3 = var_l7; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l5 = var_i0; + } + } + var_i0 = var_l5; + var_i1 = var_l1; + var_i2 = var_l10; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_l6 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = 32u; + var_i3 = 0u; + var_i4 = var_l0; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 3728u); + var_i5 = 8u; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 4240u); + var_i4 = 128u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4496u); + var_i3 = 1u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } + var_l7 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l11; + if (var_i0) { + var_i0 = 12768u; + instance->w2c_g32 = var_i0; + var_i0 = 12768u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12772u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12776u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12780u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12784u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12788u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f276(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4496u); + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f277(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0; + v128 var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l8 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12792u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 1u; + } + } + var_l5 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l5 = var_i0; + } + var_i0 = var_l4; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = var_l5; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 48u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 32u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l6; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l2; + var_i3 = 63u; + var_i2 = var_i2 == var_i3; + var_l6 = var_i2; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 64u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 6u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_i1 = var_l1; + var_i2 = var_l2; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i1 = var_l2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 20u; + var_i1 = 17u; + var_i2 = var_l3; + var_i3 = 1u; + var_i2 += var_i3; + var_i3 = instance->w2c_g4; + var_i4 = 17152u; + var_i5 = 15u; + var_i6 = 41u; + var_i2 = w2c_highlights_f75(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i2; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 3u; + var_i1 = 4u; + var_i2 = 2u; + var_i3 = var_l4; + var_i4 = 7u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_i5 = 8u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l4; + var_i4 = 9u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l4; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 64u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = var_l0; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 58u; + var_i2 = var_l1; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = var_l1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 14u; + var_i2 = 55u; + var_i3 = 23u; + var_i4 = var_l1; + var_i5 = 2u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l1; + var_i4 = 3u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = var_l2; + var_i2 = 17152u; + var_i3 = 15u; + var_i4 = 41u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + if (var_i0) { + var_i0 = var_l6; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 15u; + var_i1 = 14u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = 23u; + var_i1 = 48u; + var_i2 = var_l2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 1u; + var_i3 += var_i4; + var_l4 = var_i3; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 39u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = w2c_highlights_f46(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = var_l4; + var_i5 = w2c_highlights_f83(instance, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i6 = 36u; + var_i5 = var_i5 != var_i6; + var_i4 &= var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + var_l0 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = var_l3; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f47(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 62u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 46u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 59u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l2; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_l4 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f276(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_L29: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f276(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B30;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 15420u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 15934u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B30;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L29; + var_B30:; + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l7; + if (var_i0) { + var_i0 = 12792u; + instance->w2c_g32 = var_i0; + var_i0 = 12792u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12796u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f278(w2c_highlights* instance, u32 var_p0) { + u64 var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j0, var_j1, var_j2; + var_i0 = var_p0; + var_i1 = 3413u; + var_i0 = var_i0 == var_i1; + var_i1 = 3408u; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 435710945399ull; + var_j1 ^= var_j2; + var_j2 = 24ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 18u; + goto var_Bfunc; + } + var_i0 = 3408u; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 72057594037927935ull; + var_j0 &= var_j1; + var_l1 = var_j0; + var_j1 = 28554769915276905ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l1; + var_j2 = 28548172593000037ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 3415u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + goto var_Bfunc; + } + var_i0 = 3408u; + var_i1 = var_p0; + var_i2 = 17344u; + var_i3 = 63u; + var_i4 = 138u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f279(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0; + v128 var_l13 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l12 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12800u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + } + var_l9 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l12; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i2 = var_l9; + var_i1 -= var_i2; + var_i0 += var_i1; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l5; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 2u; + var_i1 = var_l1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4496u); + var_i2 = 4u; + var_i1 &= var_i2; + if (var_i1) {goto var_B7;} + var_L9: + var_i0 = var_l1; + var_i1 = var_l2; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B8;} + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = 5u; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L9;} + var_i0 = var_l1; + var_i1 = 5u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = !(var_i0); + var_i1 = var_l2; + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l2; + var_i3 = 48u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B8;} + var_i0 = 1u; + goto var_B7; + var_B8:; + var_i0 = 3u; + var_i1 = 0u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i2; + var_i2 = !(var_i2); + var_i3 = var_l2; + var_i4 = 10u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i5 = 13u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_B7:; + var_l2 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 5u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + if (var_i0) { + var_i0 = var_l4; + } else { + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + } + var_l4 = var_i0; + } + var_i0 = var_l0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l9 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l5; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g79; + var_i1 = var_l4; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_l5 = var_i0; + } else { + var_i0 = 0u; + var_l4 = var_i0; + } + } + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = !(var_i1); + var_i2 = var_l5; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = !(var_i0); + var_i1 = var_l5; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 27u; + var_i2 = 4u; + var_i3 = var_l3; + var_i4 = 36u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l5; + var_i1 = var_l0; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_L21: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B22;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B22;} + var_i0 = var_l0; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = 0u; + var_l4 = var_i0; + goto var_B22; + } + } else { + var_i0 = var_l0; + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4496u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_B22; + } + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L21; + var_B22:; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = instance->w2c_g79; + var_i1 = var_l7; + var_i1 = !(var_i1); + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 32u; + var_i2 |= var_i3; + var_i3 = 99u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 27u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_l4 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4496u); + var_i1 = 4u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 0u; + var_i2 = 24u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f77(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 3408u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f278(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 3u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 21u; + var_l0 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l0 = var_i0; + var_L35: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B36;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = var_l3; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i2 = var_l2; + var_i3 = 95u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4496u); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i3 = 1u; + var_i2 &= var_i3; + var_i3 = var_l11; + var_i3 = w2c_highlights_f44(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l11; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 4496u); + var_i5 = 6u; + var_i4 >>= (var_i5 & 31); + var_i5 = 1u; + var_i4 &= var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4496u); + var_i3 = 6u; + var_i2 >>= (var_i3 & 31); + var_i3 = 1u; + var_i2 &= var_i3; + var_i3 = var_l0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 4496u); + var_i4 = 5u; + var_i3 >>= (var_i4 & 31); + var_i4 = 1u; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B36;} + var_i0 = var_l3; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L35; + var_B36:; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_l2 = var_i1; + var_i0 = w2c_highlights_f77(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 3408u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f278(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l8; + if (var_i0) { + var_i0 = 29u; + var_l0 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l3; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i0 = var_l3; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l3 = var_i0; + if (var_i0) { + var_i0 = var_l3; + var_l6 = var_i0; + } + } else { + var_i0 = var_l6; + if (var_i0) { + var_i0 = 15u; + var_i1 = 23u; + var_i2 = var_l6; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + } else { + var_i0 = 14u; + var_i1 = 58u; + var_i2 = var_l2; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + } + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = 32u; + var_i3 = 0u; + var_i4 = var_l0; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 4496u); + var_i5 = 128u; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 3984u); + var_i4 = 1u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4752u); + var_i3 = 1u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + } + var_l8 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l10; + if (var_i0) { + var_i0 = 12800u; + instance->w2c_g32 = var_i0; + var_i0 = 12800u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12804u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12808u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12812u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12816u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f280(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + instance->w2c_g79 = var_i0; + w2c_highlights_f279(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f281(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 1u; + instance->w2c_g79 = var_i0; + w2c_highlights_f279(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f282(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 23552u; + var_i3 = 15u; + var_i4 = 70u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f283(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f284(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4752u); + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f285(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + v128 var_l14 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l12 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12824u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l12; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10792u; + var_i1 = 10538u; + var_i2 = 5u; + var_i3 = 4u; + var_i4 = var_l7; + var_i5 = 42u; + var_i4 = var_i4 == var_i5; + var_i5 = instance->w2c_g4; + var_i6 = 3u; + var_i5 += var_i6; + var_i5 = w2c_highlights_f83(instance, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i6 = 41u; + var_i5 = var_i5 != var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f288(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + } else { + var_i0 = 0u; + } + var_i1 = var_l4; + var_i2 = 124u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i2 = var_l0; + var_i2 = w2c_highlights_f288(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f289(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 37u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_l7 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 1u; + var_i0 += var_i1; + var_l7 = var_i0; + } + var_i0 = var_l7; + instance->w2c_g4 = var_i0; + var_i0 = 46u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l11 = var_i0; + var_l9 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_l9 = var_i0; + } + var_i0 = var_l9; + var_i0 = w2c_highlights_f288(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l13 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = var_l11; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = var_l7; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l7; + var_i2 = var_l11; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l11; + var_i1 = var_l9; + var_i2 = var_l13; + w2c_highlights_f289(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f283(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 39u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 55u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 70u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 126u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 63u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 59u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 58u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l5 = var_i0; + } + goto var_L3; + } + var_i0 = var_l4; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 37u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L22: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L22; + } + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = 46u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 39u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l2; + var_i2 = var_l4; + var_i1 = w2c_highlights_f282(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l7; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i0 = var_l7; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l3 = var_i0; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + var_l3 = var_i0; + } + var_i0 = var_l4; + var_i1 = var_l2; + var_i0 -= var_i1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 26223u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l6 = var_i0; + } else { + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 55u; + var_i1 = 23u; + var_i2 = 8u; + var_i3 = var_l4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_l8 = var_i3; + var_i4 = var_l3; + var_i5 = 3u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l3; + var_i1 = 0u; + var_i2 = var_l3; + var_i3 = 2u; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 15u; + var_i1 = 58u; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l0; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 126u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l0; + var_i5 = w2c_highlights_f83(instance, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i6 = 63u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l3; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 55u; + } else { + var_i0 = var_l6; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 14u; + var_i1 = 29u; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 14u; + var_i1 = 58u; + var_i2 = var_l5; + if (var_i2) { + var_i2 = 0u; + } else { + var_i2 = var_l0; + var_i2 = w2c_highlights_f290(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + var_l0 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = var_l2; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 14u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 15u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 29u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f286(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l2 = var_i0; + var_i1 = var_l0; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l5 = var_i0; + var_i0 = 0u; + var_i1 = var_l6; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = var_l3; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 40u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l4; + var_i4 = 59u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 46u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f288(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f290(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + } + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f284(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L39: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B40;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f284(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B40;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B40;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L39; + var_B40:; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l6; + var_i2 = var_l0; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 124u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l3; + } + var_l3 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l6; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i3 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 14906u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } + } + var_l1 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l10; + if (var_i0) { + var_i0 = 12824u; + instance->w2c_g32 = var_i0; + var_i0 = 12824u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12828u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12832u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12836u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12840u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f286(w2c_highlights* instance) { + u32 var_l0 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f287(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4752u); + var_i2 = 2u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f288(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f289(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = 12416u; + var_i1 = 124u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12417u; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = var_p1; + var_i2 -= var_i3; + var_p1 = var_i2; + var_i3 = 30u; + var_i2 = var_i2 > var_i3; + if (var_i2) { + var_i2 = 30u; + var_p1 = var_i2; + } + var_i2 = var_p1; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_p1; + var_i1 = 12417u; + var_i0 += var_i1; + var_i1 = 125u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_p2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p1; + var_i1 = 2u; + var_i0 += var_i1; + var_p2 = var_i0; + var_L1: + var_i0 = instance->w2c_g4; + var_i1 = 124u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i2 = var_p2; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + var_p1 = var_i0; + var_L4: + var_i0 = var_p1; + var_i1 = var_p2; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = instance->w2c_g4; + var_i1 = var_p1; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i2 = 12416u; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_p1; + var_i1 = 1u; + var_i0 += var_i1; + var_p1 = var_i0; + goto var_L4; + var_B5:; + var_i0 = var_p1; + var_i1 = var_p2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_p2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B2; + } + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L1; + var_B2:; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 12416u; + var_i1 = var_p2; + var_i2 = 44u; + w2c_highlights_f62(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f290(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = w2c_highlights_f287(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f288(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = var_l1; + var_i0 = w2c_highlights_f282(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i1 = 255u; + var_i0 &= var_i1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 0u; + var_i1 = (u32)((s32)var_i1 < (s32)var_i2); + var_i0 |= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f291(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 17856u; + var_i3 = 31u; + var_i4 = 108u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f292(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0; + v128 var_l18 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l17 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l16 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62344u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12848u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l16 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l14 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 36u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l11 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l17; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l16; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62344u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l11; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + goto var_B4; + } + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l11; + var_i1 = 1u; + var_i0 -= var_i1; + var_l5 = var_i0; + var_i1 = 2u; + var_i0 &= var_i1; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_l4 = var_i0; + var_i0 = var_l5; + var_i1 = 4u; + var_i0 &= var_i1; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 -= var_i1; + var_l0 = var_i0; + var_L10: + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l4; + if (var_i0) { + var_i0 = var_l7; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 34u; + var_i2 = 123u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 34u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } else { + var_i0 = var_l7; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 34u; + var_i2 = 92u; + var_i3 = 123u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = 1u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_l0 = var_i0; + } + var_i0 = var_l7; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i2 = 125u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = var_l0; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L10; + } + } + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B11; + } + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l15; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B9; + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L10; + } + var_i0 = var_l4; + var_i1 = var_l3; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + goto var_L10; + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B9; + } + var_i0 = var_l15; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i2 = w2c_highlights_f51(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + goto var_L10; + } + var_i0 = var_l3; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + goto var_L10; + } + var_i0 = var_l10; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L10; + } else { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + goto var_B8; + } + UNREACHABLE; + var_B11:; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + goto var_B8; + var_B9:; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_B8:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l11; + var_l13 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l11; + } + } + var_l11 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 10u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 3u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l0; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 3u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 41u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10792u; + var_i1 = 10538u; + var_i2 = 4u; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l5; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 27u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L33: + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l15 = var_i0; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 2u; + var_i0 |= var_i1; + } else { + var_i0 = var_l15; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 4u; + var_i0 |= var_i1; + } else { + goto var_B34; + } + } + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_L33;} + var_B34:; + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 2u; + var_i1 += var_i2; + var_l11 = var_i1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 |= var_i1; + var_l4 = var_i0; + var_i0 = var_l11; + } else { + var_i0 = var_l0; + } + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l11 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f283(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l5; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 39u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 55u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l12 = var_i0; + goto var_L3; + } + var_i0 = var_l5; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l12; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l12 = var_i0; + goto var_L3; + } + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l1; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L46: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B47;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B47;} + var_i0 = var_l0; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 96u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B45;} + goto var_L46; + var_B47:; + var_i0 = 0u; + var_B45:; + var_l4 = var_i0; + } + var_i0 = var_l4; + var_i1 = var_l1; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 36u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l4; + if (var_i0) { + var_i0 = var_l4; + instance->w2c_g4 = var_i0; + } else { + var_i0 = 39u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l3; + var_i2 = var_l5; + var_i1 = w2c_highlights_f291(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l6; + var_i3 = var_l12; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l4; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l4; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + } else { + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 19u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l2 = var_i0; + var_i0 = var_l5; + var_i1 = var_l3; + var_i0 -= var_i1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 26223u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l9 = var_i0; + var_i0 = var_l1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + } else { + var_i0 = var_l12; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l2; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 23u; + } else { + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 23u; + var_i1 = 55u; + var_i2 = 8u; + var_i3 = var_l9; + var_i4 = var_l2; + var_i5 = 2u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l5; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_l14 = var_i2; + var_i3 = var_l6; + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 2u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f287(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + } + } else { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 15u; + var_i1 = 58u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f287(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 55u; + } else { + var_i0 = var_l2; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 58u; + } else { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f287(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } else { + var_i0 = var_l9; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l6; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f287(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 14u; + var_i1 = 58u; + var_i2 = var_l8; + if (var_i2) { + var_i2 = 0u; + } else { + var_i2 = 0u; + var_i3 = var_l0; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i3; + var_i3 = w2c_highlights_f287(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = !(var_i3); + if (var_i3) {goto var_B63;} + var_i2 = var_l1; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l1; + var_i4 = 36u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l0; + var_L65: + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 >= var_i4; + if (var_i3) {goto var_B66;} + var_i3 = var_l0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i3 = w2c_highlights_f47(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l0; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 39u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i3 = I32_CLZ(var_i3); + var_i4 = 5u; + var_i3 >>= (var_i4 & 31); + if (var_i3) {goto var_B66;} + var_i3 = var_l0; + var_i4 = 1u; + var_i3 += var_i4; + var_l0 = var_i3; + goto var_L65; + var_B66:; + var_i3 = var_l0; + var_i2 = w2c_highlights_f291(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 < (s32)var_i3); + goto var_B63; + } + var_i2 = 1u; + var_B63:; + } + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + } + } + } + } + var_l1 = var_i0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 14u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 15u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 29u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + } + var_l8 = var_i0; + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f286(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l10; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l10; + var_i2 = var_l1; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i0 = var_l1; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 -= var_i1; + var_l10 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l13; + var_l11 = var_i0; + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4752u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l8 = var_i0; + var_i0 = 0u; + var_i1 = var_l9; + var_i2 = var_l1; + var_i3 = 41u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 93u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = var_l1; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 3u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + goto var_L3; + } else { + var_i0 = var_l1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l5; + var_i4 = 59u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 46u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_l14; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f284(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L76: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B77;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f284(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B77;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B77;} + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 = var_i0 > var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 93u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B77;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L76; + var_B77:; + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l9; + var_i2 = var_l1; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l1; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 124u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + } + var_l2 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l9; + var_i2 = var_l0; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i3 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 14906u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } + } + } + var_l6 = var_i0; + goto var_L3; + } + UNREACHABLE; + var_B4:; + var_i0 = var_l16; + if (var_i0) { + var_i0 = 12848u; + instance->w2c_g32 = var_i0; + var_i0 = 12848u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12852u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12856u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12860u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12864u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12868u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12872u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12876u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12880u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12884u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f293(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4, u32 var_p5, u32 var_p6, u32 var_p7) { + u32 var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0; + v128 var_l12 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = var_p2; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l10; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 123u; + var_i2 = 125u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l10; + } + } else { + var_i0 = instance->w2c_g3; + } + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l10; + var_i2 = var_p0; + var_i3 = 1u; + var_i4 = var_p4; + var_i4 = !(var_i4); + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p3; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u); + var_i2 = var_p0; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + goto var_B1; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + goto var_B1; + } + } + var_i0 = var_p4; + var_i0 = !(var_i0); + var_i1 = var_l8; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l8; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l8; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i0 = var_p1; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_p5; + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_l11 = var_i0; + var_i1 = 117u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l11; + var_i2 = 85u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l8; + var_i1 = 4u; + var_i2 = var_p5; + var_i3 = var_l11; + var_i4 = 117u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + } + } + var_i0 = 44u; + var_i1 = var_p6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l8; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l8; + var_p6 = var_i0; + } + var_i0 = var_l8; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_i1 = var_l9; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l8 = var_i2; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l8; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = instance->w2c_g4; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + goto var_L0; + } + var_i0 = var_p2; + var_i1 = var_l8; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l8; + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p7; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = var_l8; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = var_p7; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_p7; + var_i2 = 1u; + var_i1 -= var_i2; + var_i2 = var_p7; + var_i3 = var_p7; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l8; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p7 = var_i0; + var_i0 = 44u; + var_i1 = var_p6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p6 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_p6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p6 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L0; + var_B1:; + var_i0 = 44u; + var_i1 = var_p6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + var_i1 = var_p7; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f294(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7; + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = var_p1; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u); + var_i2 = var_p1; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_p1; + var_i1 = var_p2; + var_i2 = var_p3; + var_i3 = var_l4; + var_i4 = var_l4; + var_i5 = 0u; + var_i6 = var_l5; + var_i7 = 0u; + var_i0 = w2c_highlights_f293(instance, var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = var_l4; + var_i2 = var_p0; + var_i3 = 3u; + var_i2 &= var_i3; + var_l5 = var_i2; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l5; + var_i3 = 1u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10u; + instance->w2c_g25 = var_i0; + var_i0 = var_p1; + instance->w2c_g26 = var_i0; + var_i0 = var_p2; + var_i1 = var_p3; + var_i2 = 1u; + var_i1 <<= (var_i2 & 31); + var_i2 = var_l4; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i0 |= var_i1; + instance->w2c_g27 = var_i0; + var_i0 = var_p0; + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + instance->w2c_g28 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f295(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0; + v128 var_l16 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j2, var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12888u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l11 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + var_l4 = var_i0; + } + var_i0 = 1u; + } + var_l2 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 10u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g0; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 1u; + var_l2 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = instance->w2c_g41; + var_i1 = instance->w2c_g42; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L12: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B13;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L12; + var_B13:; + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 2u); + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u); + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 8224u; + var_i0 |= var_i1; + var_l3 = var_i0; + var_i1 = 29282u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 25202u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 29286u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 26226u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 29300u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 29810u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u); + var_i2 = 1u; + var_i3 = var_l3; + var_i4 = 29282u; + var_i3 = var_i3 != var_i4; + var_i4 = var_l3; + var_i5 = 25202u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + w2c_highlights_f294(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = 0u; + var_i3 = 0u; + w2c_highlights_f294(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l6; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = var_l0; + var_i1 = 32u; + var_i0 |= var_i1; + var_l0 = var_i0; + var_i1 = 114u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 117u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 102u; + var_i1 = var_i1 == var_i2; + var_l14 = var_i1; + var_i2 = var_l0; + var_i3 = 98u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 116u; + var_i1 = var_i1 == var_i2; + var_l15 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 114u; + var_i0 = var_i0 == var_i1; + var_l6 = var_i0; + var_i0 = var_l14; + var_i1 = var_l15; + var_i0 |= var_i1; + var_l12 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i1 = var_l1; + var_i2 = var_l3; + var_i1 += var_i2; + var_l0 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_l6; + var_i3 = var_l12; + w2c_highlights_f294(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_l0 = var_i1; + var_i2 = 25408u; + var_i3 = 31u; + var_i4 = 78u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 18u; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 435727982962ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B22;} + var_i0 = 0u; + goto var_B22; + } + var_i0 = var_l3; + var_B22:; + } + var_l3 = var_i0; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + var_i1 = instance->w2c_g4; + var_l0 = var_i1; + var_i2 = var_l1; + var_i1 -= var_i2; + var_l6 = var_i1; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 448345170285ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + var_i2 = var_l6; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 1702060387u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B25;} + var_i0 = var_l0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B25;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4752u); + var_i2 = 4u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_B25:; + var_i1 = var_l2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 18u; + var_l0 = var_i0; + } else { + var_i0 = var_l10; + if (var_i0) { + var_i0 = 57u; + var_i1 = 15u; + var_i2 = var_l10; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l10; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + } + } else { + var_i0 = var_l4; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g39; + var_i0 &= var_i1; + var_i1 = instance->w2c_g38; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 59u; + } else { + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = var_l8; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = 14u; + var_i1 = 58u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + var_l0 = var_i0; + } + } + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i2 = 18u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = var_l4; + var_i3 = var_l5; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = 59u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_l5 = var_i0; + var_i0 = 1u; + var_i1 = var_l9; + var_i2 = instance->w2c_g4; + var_i3 = var_l1; + var_i2 -= var_i3; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 107083775959404ull; + var_j3 ^= var_j4; + var_j4 = 16ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l3; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l10 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g36 = var_i0; + var_i0 = instance->w2c_g42; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g41; + if (var_i0) { + w2c_highlights_f38(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = 1u; + instance->w2c_g39 = var_i0; + } else { + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g36; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g36 = var_i0; + } + } else { + var_i0 = instance->w2c_g41; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g42; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g42 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f41(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + } + } else { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g38 = var_i0; + } else { + var_i0 = instance->w2c_g38; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g38 = var_i0; + } + } + } + } + } + } + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l7; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l7; + var_i2 = var_l7; + var_i3 = var_l0; + var_i4 = 93u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 125u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_l4 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_l3 = var_i1; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_l2 = var_i1; + var_i2 = var_l6; + var_i3 = 61u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = 59u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = var_l5; + var_i2 = var_l7; + var_i3 = var_l9; + var_i2 |= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i1 &= var_i2; + var_i0 &= var_i1; + var_l8 = var_i0; + var_i0 = 0u; + var_i1 = var_l9; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = var_l3; + instance->w2c_g39 = var_i0; + var_i0 = var_l5; + var_i1 = 0u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4752u); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l6; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l6; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l8 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = instance->w2c_g39; + var_i1 = var_l0; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + instance->w2c_g39 = var_i0; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + } + } + var_l5 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l11; + if (var_i0) { + var_i0 = 12888u; + instance->w2c_g32 = var_i0; + var_i0 = 12888u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12892u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12896u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12900u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12904u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12908u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f296(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j0, var_j1, var_j2, var_j3, var_j4; + var_i0 = var_p1; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_p1; + var_i2 = var_p0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 7u); + var_i3 = 105u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 125823019607382ull; + var_j3 ^= var_j4; + var_j4 = 16ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i3 = var_p1; + var_i4 = var_p0; + var_i3 -= var_i4; + var_p1 = var_i3; + var_i4 = 8u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 7u); + var_i1 = 1144221042u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8245922088697819732ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = var_p1; + var_i2 = 11u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 56u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 110386756149584ull; + var_j0 ^= var_j1; + var_j1 = 16ull; + var_j0 <<= (var_j1 & 63); + var_i0 = !(var_j0); + var_i1 = var_l2; + var_i2 = 5u; + var_i1 -= var_i2; + var_l3 = var_i1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 521325933121ull; + var_j1 ^= var_j2; + var_j2 = 24ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i0 &= var_i1; + var_i1 = var_p1; + var_i2 = 15u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 6u; + var_i0 += var_i1; + var_i1 = var_l3; + var_i2 = 18400u; + var_i3 = 3u; + var_i4 = 10u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = var_l2; + var_i2 = 18240u; + var_i3 = 7u; + var_i4 = 27u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f297(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0; + v128 var_l12 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7, + var_i8, var_i9, var_i10; + var_i0 = instance->w2c_g7; + var_l11 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12912u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + } else { + var_i0 = 0u; + } + } + var_l7 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = var_l7; + if (var_i0) {goto var_B6;} + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l3; + var_i4 = 35u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 114u; + var_i0 = var_i0 == var_i1; + var_l8 = var_i0; + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4752u); + var_i2 = 6u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i2 = !(var_i2); + var_i3 = var_l0; + var_i4 = 37u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l3; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l0; + var_l7 = var_i3; + var_i4 = instance->w2c_g4; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 1u); + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 2u); + var_i5 = var_l0; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i4 = instance->w2c_g3; + var_i5 = instance->w2c_g4; + var_i6 = 2u; + var_i5 += var_i6; + var_i4 = var_i4 > var_i5; + var_i3 &= var_i4; + var_l6 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B6; + } + var_i0 = var_l0; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = var_l3; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 37u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_L13: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B14;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 47u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B14;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L13; + var_B14:; + var_i0 = 60u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i2 = 18464u; + var_i3 = 15u; + var_i4 = 40u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 255u; + var_i0 &= var_i1; + var_l10 = var_i0; + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 15u; + var_i2 = 55u; + var_i3 = var_l4; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 < (s32)var_i3); + if (var_i2) { + var_i2 = var_l2; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f296(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i2; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 < (s32)var_i3); + if (var_i2) { + var_i2 = var_l2; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i2) { + var_i2 = 6u; + } else { + var_i2 = 55u; + var_i3 = 14u; + var_i4 = 58u; + var_i5 = var_l3; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i4 = var_l0; + var_i5 = 65u; + var_i4 -= var_i5; + var_i5 = 25u; + var_i4 = var_i4 <= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + } + } else { + var_i2 = var_l10; + } + } else { + var_i2 = var_l10; + } + var_i3 = var_l4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 19u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l0; + var_i1 = 18u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = 19u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 21u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 32u; + } else { + var_i0 = 35u; + var_i1 = 25u; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4752u); + var_i3 = 128u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + } else { + var_i0 = var_l1; + } + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4752u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + var_B6:; + var_i0 = 0u; + var_i1 = var_l7; + var_i2 = var_l6; + var_i2 = !(var_i2); + var_i3 = var_l7; + var_i4 = var_l8; + var_i5 = 0u; + var_i6 = var_l6; + var_i7 = var_l6; + var_i8 = 6u; + var_i9 = var_l2; + var_i10 = 0u; + var_i3 = w2c_highlights_f293(instance, var_i3, var_i4, var_i5, var_i6, var_i7, var_i8, var_i9, var_i10); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i3; + var_i4 = 2u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i3 = var_l0; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 12912u; + instance->w2c_g32 = var_i0; + var_i0 = 12912u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12916u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12920u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12924u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12928u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12932u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f298(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + v128 var_l8 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7, + var_i8, var_i9; + var_i0 = instance->w2c_g7; + var_l7 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12936u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l4 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = var_l4; + if (var_i0) {goto var_B6;} + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l3; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B6; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f58(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_L12: + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l5; + var_i2 = 58u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L12; + var_B13:; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 29u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + } + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_L17: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B18;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 47u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B18;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L17; + var_B18:; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l2; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + var_i3 = 19488u; + var_i4 = 3u; + var_i5 = 18u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + var_i2 = 49u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 4294967295u; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f296(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + } + var_i0 = 29u; + var_i1 = 55u; + var_i2 = 58u; + var_i3 = var_l1; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i3 = var_l3; + var_i4 = 0u; + var_i3 = (u32)((s32)var_i3 < (s32)var_i4); + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l5; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f58(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_l2 = var_i0; + } + var_i0 = 35u; + var_i1 = 32u; + var_i2 = 25u; + var_i3 = var_l1; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 3728u); + var_i4 = 8u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4240u); + var_i3 = 128u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B6:; + var_i0 = var_l4; + var_i1 = 0u; + var_i2 = var_l4; + var_i3 = 0u; + var_i4 = 0u; + var_i5 = 0u; + var_i6 = 1u; + var_i7 = 6u; + var_i8 = var_l0; + var_i9 = 0u; + var_i2 = w2c_highlights_f293(instance, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7, var_i8, var_i9); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 1u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 12936u; + instance->w2c_g32 = var_i0; + var_i0 = 12936u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12940u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f299(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + w2c_highlights_f300(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f300(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, + var_l9 = 0, var_l10 = 0; + u64 var_l11 = 0; + v128 var_l12 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j1, var_j2, var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l10 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12944u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + var_l4 = var_i0; + } + var_i0 = var_l8; + var_i0 = w2c_highlights_f59(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l8 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l10; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L7: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B8;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B8;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L7; + var_B8:; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 -= var_i1; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 28539428140183145ull; + var_j1 ^= var_j2; + var_j2 = 8ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = 27u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L10: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B11;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B11; + } + var_i0 = var_l1; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B11;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L10; + var_B11:; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = 5u; + var_i2 = 4u; + var_i3 = instance->w2c_g4; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 2u); + var_l2 = var_i3; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + } else { + var_i1 = 4u; + } + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l7; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = 5u; + var_i2 = 4u; + var_i3 = instance->w2c_g4; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 2u); + var_l2 = var_i3; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + } else { + var_i1 = 4u; + } + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + } + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l6 = var_i0; + } + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f57(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i2 = instance->w2c_g4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i2 = w2c_highlights_f44(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i2 = var_l3; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_l6; + if (var_i0) { + var_i0 = 17u; + } else { + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i2 = 18656u; + var_i3 = 31u; + var_i4 = 95u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l1; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l6 = var_i0; + var_i0 = var_l1; + var_i1 = 255u; + var_i0 &= var_i1; + } else { + var_i0 = 7u; + var_i1 = 0u; + var_i2 = instance->w2c_g4; + var_i3 = var_l2; + var_i2 -= var_i3; + var_l7 = var_i2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i4 = 69u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l7; + var_i1 = 18u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = var_l2; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 16u); + var_i3 = 25970u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 8u); + var_j4 = 8463521976875444340ull; + var_i3 = var_j3 == var_j4; + var_i2 &= var_i3; + var_i3 = var_l2; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 8098989866033768808ull; + var_i3 = var_j3 == var_j4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + var_i0 = var_l7; + var_i1 = 32u; + var_i0 -= var_i1; + var_i1 = 1u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 4u; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1667854447u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 12u; + var_i1 -= var_i2; + var_l3 = var_i1; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8247339359102984543ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = var_l2; + var_i3 = var_l3; + var_i4 = 18656u; + var_i5 = 31u; + var_i6 = 95u; + var_i2 = w2c_highlights_f76(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l1; + } + } else { + var_i0 = var_l1; + } + } + } + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_l3 = var_i1; + var_i2 = 19744u; + var_i3 = 31u; + var_i4 = 81u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l1; + goto var_B29; + } + var_i0 = var_l3; + var_i1 = var_l2; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i1 = 7u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 4u; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i1 = 1952396849u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 1952395827u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l7; + var_i2 = 1952396342u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 499850898534ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 7630441u; + var_i3 ^= var_i4; + var_i4 = 8u; + var_i3 <<= (var_i4 & 31); + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i3 = var_l1; + var_i4 = 8u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i4 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 1953393013u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B31;} + } + var_i0 = 18u; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8386105380227409268ull; + var_i1 = var_j1 == var_j2; + var_i2 = var_l2; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 7u); + var_j3 = 6077684084762633588ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 15u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B29;} + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 50u; + var_i0 -= var_i1; + var_i1 = 2u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 16777215u; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i1 = 6514038u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 7627117u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + } + var_i0 = var_l1; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 1667593826u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 1667593833u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 1667593828u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 1952542052u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 1667593845u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + } + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_i1 = 120u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 3u); + var_i2 = 50u; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 7627117u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 6u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B31;} + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5u); + var_i1 = 120u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 50u; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 1952542052u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B31;} + } + var_i0 = var_l1; + var_i1 = 5u; + var_i0 = var_i0 >= var_i1; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 435526135145ull; + var_j1 ^= var_j2; + var_j2 = 24ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 6u; + var_i1 = var_i1 >= var_i2; + var_i2 = var_l2; + var_i3 = var_l2; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 105u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 117u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_l3 = var_i3; + var_i2 += var_i3; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 72057594037927935ull; + var_j2 &= var_j3; + var_l11 = var_j2; + var_j3 = 435526135145ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i1 = !(var_i1); + var_j2 = var_l11; + var_j3 = 32758219964116835ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + var_j2 = var_l11; + var_j3 = 32199663762104691ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = var_l3; + var_i2 -= var_i3; + var_i3 = 7u; + var_i2 = var_i2 >= var_i3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 8u; + var_i2 = var_i2 >= var_i3; + var_j3 = var_l11; + var_j4 = 28554821438563700ull; + var_i3 = var_j3 == var_j4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_i0 = 0u; + goto var_B29; + var_B31:; + var_i0 = 56u; + var_B29:; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l5; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l2; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 6253671u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 60u; + } else { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 14u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l4; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + } + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 19u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_l4 = var_i1; + var_i2 = var_l3; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5008u); + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l1 = var_i1; + var_i2 = var_l3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 62u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L48: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B49;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 9u; + var_i0 -= var_i1; + var_i1 = 4u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l1; + var_i2 = 32u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B49;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L48; + var_B49:; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 12944u; + instance->w2c_g32 = var_i0; + var_i0 = 12944u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12948u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12952u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12956u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12960u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f301(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 1u; + w2c_highlights_f300(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f302(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5008u); + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f303(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0; + v128 var_l12 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l11 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12968u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + } else { + var_i0 = 0u; + } + } + var_l4 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = instance->w2c_g4; + var_i4 = 10u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g4; + var_i2 = var_i2 >= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l8; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l6; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l1; + var_i2 = var_l6; + var_i3 = 19616u; + var_i4 = 7u; + var_i5 = 25u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l2; + var_i3 = var_l3; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l7; + var_i2 = var_l10; + var_i3 = 8u; + var_i2 >>= (var_i3 & 31); + var_l5 = var_i2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = 1u; + var_i1 = var_l4; + var_i2 = var_l5; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 1u; + var_i1 = var_l3; + var_i2 = var_l10; + var_i3 = 255u; + var_i2 &= var_i3; + var_l0 = var_i2; + var_i3 = 20u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l6; + var_i4 = var_l1; + var_i3 -= var_i4; + var_i4 = 6u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = 23u; + var_l0 = var_i0; + } else { + var_i0 = var_l5; + if (var_i0) { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l5; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 8u; + var_i1 = 55u; + var_i2 = var_l4; + var_i2 = !(var_i2); + var_i3 = var_l6; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l8; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l6; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = 59u; + var_i1 = 58u; + var_i2 = var_l8; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l8; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 58u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + var_l0 = var_i0; + } + } + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = var_l6; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l4; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f302(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L26: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f302(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B27;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B27;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L26; + var_B27:; + var_i0 = 25u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 -= var_i1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = var_l4; + var_i2 = var_l1; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 15917u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l4; + } + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 61u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 12968u; + instance->w2c_g32 = var_i0; + var_i0 = 12968u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12972u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12976u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12980u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12984u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f304(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5008u); + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f305(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0; + v128 var_l11 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l9 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12992u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l9; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = var_l1; + var_i2 = var_l0; + var_i3 = instance->w2c_g4; + var_i4 = 10u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g4; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l4; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_l10 = var_i0; + var_i1 = var_l4; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 5u; + var_i1 = 4u; + var_i2 = var_l4; + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 33u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l10; + if (var_i0) { + var_i0 = 2u; + var_i1 = var_l0; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 2u; + var_i1 = var_l0; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 96u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_l4 = var_i1; + var_i2 = 20032u; + var_i3 = 15u; + var_i4 = 51u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l5; + var_i1 = 255u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 4u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l5; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_l1 = var_i0; + } + } else { + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = var_l1; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l4; + var_i3 = w2c_highlights_f73(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i3; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 40u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + if (var_i0) { + var_i0 = 15u; + var_i1 = 23u; + var_i2 = 55u; + var_i3 = var_l1; + var_i4 = 3u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 4u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } else { + var_i0 = var_l5; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 14u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = 6u; + var_i1 = 55u; + var_i2 = 58u; + var_i3 = var_l0; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l7; + var_i3 = var_l4; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + var_l2 = var_i0; + } + } + var_i0 = var_l2; + var_i1 = var_l7; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = var_l3; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = var_l3; + var_i3 = 1u; + var_i2 -= var_i3; + var_l3 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l3; + var_i2 = var_l3; + var_i2 = !(var_i2); + var_i3 = var_l1; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_l6 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_l2 = var_i1; + var_i2 = var_l0; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f304(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l4; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l8; + if (var_i0) { + var_i0 = 12992u; + instance->w2c_g32 = var_i0; + var_i0 = 12992u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12996u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13000u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13004u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f306(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0; + v128 var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l8 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13008u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l4 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L9: + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B10; + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 92u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L9; + } + var_l1 = var_i0; + var_B10:; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 2236962u; + var_i1 = 3u; + var_i2 = 44u; + w2c_highlights_f63(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g25; + var_i1 = 20u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 92u; + instance->w2c_g27 = var_i0; + } + } + } else { + var_i0 = 34u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 3u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l1; + var_i2 = var_l5; + var_i3 = 20224u; + var_i4 = 7u; + var_i5 = 24u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i1; + var_i2 = var_l2; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l2; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l2; + var_i4 = 64u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i5 = 40u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l2; + var_i5 = 38u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i3 = var_l6; + var_i4 = 255u; + var_i3 &= var_i4; + var_i4 = 17u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l6; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i0 = var_l6; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l4 = var_i0; + } else { + var_i0 = var_l4; + if (var_i0) { + var_i0 = 14u; + var_i1 = 15u; + var_i2 = 6u; + var_i3 = 55u; + var_i4 = var_l1; + var_i5 = var_l5; + var_i4 = w2c_highlights_f82(instance, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l4; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l4; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 55u; + var_i2 = var_l1; + var_i3 = var_l5; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 59u; + var_i1 = 29u; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 14u; + var_i2 = 29u; + var_i3 = var_l2; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l0 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l3; + var_i3 = var_l0; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l3 = var_i1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_l3 = var_i0; + } + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 124u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l7; + if (var_i0) { + var_i0 = 13008u; + instance->w2c_g32 = var_i0; + var_i0 = 13008u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13012u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f307(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5008u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f308(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0; + v128 var_l18 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l16 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l1 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13016u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l14 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l8 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l8; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + goto var_B4; + } + var_i0 = 34u; + var_i1 = 39u; + var_i2 = var_l8; + var_i3 = 3u; + var_i2 = var_i2 >= var_i3; + var_l17 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = var_l8; + var_i1 = 1u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_l12 = var_i0; + var_i0 = var_l4; + var_i1 = instance->w2c_g4; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i3 = var_l3; + var_i4 = 1u; + var_i5 = var_l12; + var_i5 = !(var_i5); + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i2 = var_l17; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i2 = 36u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + } + var_i0 = var_l4; + var_i1 = var_l2; + var_i2 = var_l2; + var_i3 = var_l4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i1 = var_l3; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l12; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l3; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l12; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + goto var_B10; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l15; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l15; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = var_l15; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + var_i1 = var_l6; + var_i2 = var_l0; + var_i2 = w2c_highlights_f84(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L9; + } + var_i0 = var_l0; + var_i1 = 16u; + var_i2 = var_l10; + var_i0 = w2c_highlights_f85(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) {goto var_L9;} + var_i0 = 2u; + goto var_B8; + var_B10:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_B8:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l8; + var_l13 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i0 = !(var_i0); + var_i1 = var_l8; + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l8; + } + } + var_l8 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l6; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 3u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g1; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_l12 = var_i0; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 3u; + var_i1 = 1u; + var_i2 = var_l12; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = var_l3; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = var_l6; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l8; + var_i1 = 1u; + var_i0 += var_i1; + var_l8 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 46u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l2; + var_i2 = var_l6; + var_i3 = 20320u; + var_i4 = 15u; + var_i5 = 60u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l7; + var_i3 = var_l9; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l12 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l12; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l12; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_l5 = var_i0; + } + var_i0 = 1u; + var_i1 = var_l9; + var_i2 = var_l1; + var_i3 = 20u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l1; + var_i1 = 56u; + var_i0 = var_i0 == var_i1; + } else { + var_i0 = var_l9; + if (var_i0) { + var_i0 = 23u; + var_l1 = var_i0; + } else { + var_i0 = var_l5; + if (var_i0) { + var_i0 = 55u; + var_i1 = 15u; + var_i2 = 58u; + var_i3 = var_l3; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l5; + var_i3 = 1u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } else { + var_i0 = var_l7; + if (var_i0) { + var_i0 = 16u; + var_i1 = 55u; + var_i2 = 29u; + var_i3 = var_l0; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + var_i1 = var_l6; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = var_l0; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l3; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 15u; + var_i1 = 14u; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l6; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 58u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = 14u; + var_i1 = 58u; + var_i2 = var_l1; + var_i3 = var_l11; + var_i3 = !(var_i3); + var_i4 = var_l3; + var_i4 = w2c_highlights_f46(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = var_l3; + var_i5 = w2c_highlights_f44(instance, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 |= var_i5; + var_i5 = var_l3; + var_i5 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5) + 5008u); + var_i6 = 4u; + var_i5 >>= (var_i6 & 31); + var_i6 = 1u; + var_i5 &= var_i6; + var_i4 |= var_i5; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + } + var_l1 = var_i0; + } + } + var_i0 = var_l1; + var_i1 = 55u; + var_i0 = var_i0 == var_i1; + } + var_l11 = var_i0; + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = var_l6; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l10; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l10; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i0 = var_l0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 -= var_i1; + var_l10 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l13; + var_l8 = var_i0; + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i1 = var_l0; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_i1 = var_l9; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l6 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 46u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l7 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f307(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_L45: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f307(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B46;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B46;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L45; + var_B46:; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f80(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } + var_i0 = var_l9; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 61u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l14; + if (var_i0) { + var_i0 = 13016u; + instance->w2c_g32 = var_i0; + var_i0 = 13016u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13020u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13024u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13028u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13032u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13036u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13040u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13044u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13048u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f309(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5008u); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f310(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + v128 var_l14 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13056u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + var_l4 = var_i0; + } + var_i0 = 1u; + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 10u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l11 = var_i1; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 2u); + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 11643u; + var_i1 = 32045u; + var_i2 = 27u; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 11643u; + var_i1 = 32045u; + var_i2 = 5u; + var_i3 = 4u; + var_i4 = instance->w2c_g4; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 2u); + var_i5 = 124u; + var_i4 = var_i4 == var_i5; + var_i5 = instance->w2c_g4; + var_i5 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5) + 2u); + var_i6 = 94u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i5 = instance->w2c_g3; + var_i6 = instance->w2c_g4; + var_i7 = 2u; + var_i6 += var_i7; + var_i5 = var_i5 > var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l11; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_L11: + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 45u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B12;} + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L11; + var_B12:; + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f309(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = 2u; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + if (var_i1) { + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l0; + var_i4 = 1u; + var_i3 += var_i4; + var_i4 = var_l0; + var_i5 = var_l0; + var_i5 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5)); + var_i6 = 32u; + var_i5 = var_i5 == var_i6; + var_i6 = var_l0; + var_i7 = instance->w2c_g3; + var_i6 = var_i6 < var_i7; + var_i5 &= var_i6; + var_i3 = var_i5 ? var_i3 : var_i4; + var_l0 = var_i3; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 124u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 94u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l0; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 36u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = var_l0; + var_i5 = instance->w2c_g3; + var_i4 = var_i4 < var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + } else { + var_i1 = 4u; + } + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B10:; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_l3 = var_i2; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B16;} + var_i0 = 1u; + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_l12 = var_i1; + var_i2 = 92u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B16;} + var_i0 = 0u; + var_i1 = var_l12; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l12; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B16;} + var_i0 = var_l3; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_B16:; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 47u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l7; + var_i0 = !(var_i0); + var_l7 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l11; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 39u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i2 = 20544u; + var_i3 = 15u; + var_i4 = 59u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i0 = var_l3; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l4; + var_i2 = var_l8; + var_i3 = var_l2; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 8u; + } else { + var_i0 = var_l7; + var_i1 = var_l1; + var_i2 = var_l9; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 14u; + var_i1 = 15u; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 14u; + var_i1 = 58u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 19u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l5 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 20u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l8 = var_i0; + } else { + var_i0 = 0u; + var_l5 = var_i0; + } + } + var_i0 = var_l3; + var_i1 = 255u; + var_i0 = (u32)((s32)var_i0 > (s32)var_i1); + var_l9 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l6; + var_i2 = 1u; + var_i1 <<= (var_i2 & 31); + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4752u); + var_i3 = 8u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = var_l6; + var_i3 = 1u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f309(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L31: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B32;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f309(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B32;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L31; + var_B32:; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l4; + var_i2 = var_l2; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l1 = var_i2; + var_i3 = 14906u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 15677u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l10; + if (var_i0) { + var_i0 = 13056u; + instance->w2c_g32 = var_i0; + var_i0 = 13056u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13060u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13064u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13068u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13072u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13076u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f311(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + v128 var_l14 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j1, var_j2, var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l8 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13080u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + var_l7 = var_i0; + } + var_i0 = var_l11; + var_i0 = w2c_highlights_f59(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l11 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 10u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + var_i0 = var_l8; + var_l0 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l10; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l10; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l10; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 3u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i4 = var_l10; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 -= var_i1; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 28539428140183145ull; + var_j1 ^= var_j2; + var_j2 = 8ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i0 &= var_i1; + var_l9 = var_i0; + var_i0 = 27u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l9; + var_i1 = var_l1; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L11: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 62u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_L11;} + var_B12:; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l9 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f57(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l2; + var_i2 = var_l1; + var_i3 = 20768u; + var_i4 = 15u; + var_i5 = 67u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i1; + var_i2 = 0u; + var_i1 = (u32)((s32)var_i1 < (s32)var_i2); + if (var_i1) { + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = var_l2; + var_i2 -= var_i3; + var_l0 = var_i2; + var_i3 = 4u; + var_i2 = var_i2 < var_i3; + if (var_i2) {goto var_B17;} + var_i1 = 56u; + var_i2 = var_l0; + var_i3 = 7u; + var_i2 = var_i2 >= var_i3; + var_i3 = var_l2; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 32199663762104691ull; + var_j3 ^= var_j4; + var_j4 = 8ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + if (var_i2) {goto var_B17;} + var_i1 = 56u; + var_i2 = var_l1; + var_i3 = 4u; + var_i2 -= var_i3; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l5 = var_i2; + var_i3 = 1952396849u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 1952395827u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l5; + var_i4 = 1952396342u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = 7u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_i4 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 7630441u; + var_i4 ^= var_i5; + var_i5 = 8u; + var_i4 <<= (var_i5 & 31); + var_i4 = !(var_i4); + var_i3 &= var_i4; + var_i4 = var_l0; + var_i5 = 8u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l2; + var_i5 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5)); + var_i6 = 1953393013u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + if (var_i2) {goto var_B17;} + var_i1 = 56u; + var_i2 = var_l2; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 829319533u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B17;} + var_i1 = var_l1; + var_l0 = var_i1; + var_i2 = 1u; + var_i1 -= var_i2; + var_l5 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 49u; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 = var_i1 <= var_i2; + if (var_i1) { + var_i1 = var_l1; + var_i2 = 2u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 120u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 3u; + var_i2 -= var_i3; + var_l0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 49u; + var_i2 -= var_i3; + var_i3 = 3u; + var_i2 = var_i2 <= var_i3; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) { + var_i1 = var_l5; + var_l0 = var_i1; + } + } + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = var_l1; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B17;} + var_i1 = 56u; + var_i2 = var_l2; + var_i3 = var_l0; + var_i4 = 20768u; + var_i5 = 15u; + var_i6 = 67u; + var_i2 = w2c_highlights_f76(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 56u; + var_i2 = var_i2 == var_i3; + if (var_i2) {goto var_B17;} + var_i1 = 0u; + var_B17:; + var_l0 = var_i1; + var_i2 = 4294967295u; + var_i3 = var_l0; + var_i1 = var_i3 ? var_i1 : var_i2; + goto var_B15; + } + var_i1 = var_l0; + var_B15:; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 56u; + var_i0 = var_i0 == var_i1; + } else { + var_i0 = var_l7; + if (var_i0) { + var_i0 = 1u; + var_l0 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l6; + if (var_i0) { + var_i0 = 55u; + var_i1 = 23u; + var_i2 = var_l6; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_l5 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l5; + } else { + var_i0 = var_l2; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 6248019u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 60u; + var_l0 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l10; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l10; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + if (var_i0) { + var_i0 = 15u; + } else { + var_i0 = 55u; + var_i1 = 14u; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l0 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l2; + var_i1 = var_l1; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + var_l0 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l4; + var_i1 = 55u; + var_i2 = 58u; + var_i3 = var_l2; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l0 = var_i1; + var_i2 = 55u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 58u; + var_i1 = var_l0; + var_i2 = var_l2; + var_i2 = w2c_highlights_f58(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i3 = 60u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l0; + var_i4 = 44u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = 55u; + var_i0 = var_i0 == var_i1; + } + } + } + } + } + } + } + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = var_l2; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l7; + var_i2 = var_l1; + var_i3 = 91u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 93u; + var_i2 = var_i2 != var_i3; + var_l0 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = 91u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + goto var_L3; + } else { + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l5; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_l3 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } else { + var_i0 = var_l1; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l5; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l0; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = var_l5; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l4; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f80(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + } + } + } + var_l4 = var_i0; + goto var_L3; + } + UNREACHABLE; + var_B4:; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 13080u; + instance->w2c_g32 = var_i0; + var_i0 = 13080u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13084u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13088u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13092u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13096u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13100u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13104u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f312(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0; + v128 var_l12 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l10 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13112u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + } + } else { + var_i0 = 0u; + } + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l10; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l7; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = 0u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + var_l0 = var_i2; + var_L8: + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i4 = 34u; + var_i5 = 1u; + var_i6 = 0u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B9;} + var_i2 = instance->w2c_g4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g4; + var_i4 = 2u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 34u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = instance->w2c_g4; + var_i3 = 3u; + var_i2 += var_i3; + instance->w2c_g4 = var_i2; + var_i2 = 44u; + var_i3 = var_l0; + var_i4 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 1u; + goto var_B7; + } + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + instance->w2c_g4 = var_i2; + } else { + var_i2 = var_l0; + var_i2 = w2c_highlights_f84(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = instance->w2c_g4; + var_l0 = var_i2; + } + goto var_L8; + var_B9:; + var_i2 = 44u; + var_i3 = var_l0; + var_i4 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 0u; + var_B7:; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_l9 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l2; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l2; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 3u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l4; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l7 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + var_l4 = var_i1; + var_i2 = 21024u; + var_i3 = 15u; + var_i4 = 61u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 1023u; + var_i0 = (u32)((s32)var_i0 > (s32)var_i1); + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1023u; + var_i0 &= var_i1; + var_i1 = 4294967295u; + var_i2 = var_l4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l3; + var_i3 = !(var_i3); + var_i4 = var_l2; + var_i5 = var_l4; + var_i4 = var_i4 > var_i5; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + } + var_i0 = var_l2; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l6; + var_i1 = var_l2; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = var_l2; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 56u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + } else { + var_i0 = var_l4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 55u; + var_i1 = 23u; + var_i2 = var_l6; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_l1 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_i1 = var_l6; + var_i2 = var_l2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 46u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l1; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = var_l2; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 16u; + } else { + var_i0 = 55u; + var_i1 = 29u; + var_i2 = var_l0; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_l1 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l0 = var_i0; + } else { + var_i0 = var_l2; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 55u; + var_i1 = 15u; + var_i2 = 14u; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } else { + var_i0 = var_l5; + var_i1 = var_l4; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 6u; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l0; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_l1 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l0 = var_i0; + } + } + } + } + var_i0 = var_l0; + var_i1 = var_l5; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = 93u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l11 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l4; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_l3 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l4; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_l0 = var_i3; + var_i4 = var_l2; + var_i5 = 46u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + var_l3 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l4; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + } + var_i0 = 25u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f80(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l0; + var_i4 = 62u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l5; + var_i4 = var_l9; + var_i3 = var_i3 != var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 0u; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + } + } + var_l1 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l8; + if (var_i0) { + var_i0 = 13112u; + instance->w2c_g32 = var_i0; + var_i0 = 13112u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13116u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13120u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13124u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f313(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 0u; + w2c_highlights_f316(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f314(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 1u; + w2c_highlights_f316(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f315(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 2u; + w2c_highlights_f316(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f316(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, + var_l9 = 0; + v128 var_l10 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g7; + var_l8 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13128u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + var_l2 = var_i0; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l6; + var_i2 = 255u; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = instance->w2c_g4; + var_i0 = w2c_highlights_f318(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l6; + } + } + var_l6 = var_i0; + var_L4: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_L8: + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L8; + } + } else { + var_i0 = var_l2; + } + var_l2 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 30u; + var_i1 = 44u; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = var_l5; + var_i3 = var_l4; + var_i0 = w2c_highlights_f318(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L4; + } + var_i0 = var_l1; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l5; + if (var_i0) { + var_i0 = w2c_highlights_f319(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f320(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L4; + } + var_i0 = var_l1; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_l9 = var_i0; + var_i1 = var_l1; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1024u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 36544u; + var_i0 += var_i1; + var_i1 = var_l9; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l1; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l2; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l1; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l2; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l2; + var_i2 = 1024u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 36543u; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l1; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l1; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l5; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 92u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 117u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + } else { + var_i0 = 0u; + } + } + if (var_i0) { + var_i0 = var_l5; + if (var_i0) { + var_L27: + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 117u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = 4u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + goto var_L27; + } + } else { + var_L29: + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B30;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_L29;} + var_B30:; + } + var_i0 = 30u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + var_i3 = var_l5; + var_i1 = w2c_highlights_f317(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i3 = var_l5; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + var_i0 = var_l5; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 30u; + var_i1 = 44u; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = 1u; + var_i3 = var_l4; + var_i0 = w2c_highlights_f318(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L4; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 <= var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 43u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f319(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + } + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L4; + var_B5:; + var_i0 = var_l2; + instance->w2c_g33 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_i0 = 13128u; + instance->w2c_g32 = var_i0; + var_i0 = 13128u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13132u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13136u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f317(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j2, var_j3; + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p1 = var_i0; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1702195828u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1819047278u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 7u; + goto var_Bfunc; + } + } + var_i0 = var_p1; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 1936482662u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_i1 = 101u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + goto var_Bfunc; + } + } + var_i0 = var_p2; + var_i1 = var_p1; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 8751735898823355977ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + var_i2 = var_p1; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 5136718u; + var_i3 ^= var_i4; + var_i4 = 8u; + var_i3 <<= (var_i4 & 31); + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 7u; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f318(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_L0: + var_i0 = var_p1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 39u; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = var_p1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B1; + } + var_i0 = var_l4; + var_i1 = 92u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = var_p3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_p3 = var_i1; + var_i2 = 120u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_p3; + var_i2 = 117u; + var_i1 = var_i1 == var_i2; + var_p3 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = 4u; + var_i2 = 2u; + var_i3 = var_p3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_p3 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_p3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p3; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_p3 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l4 = var_i1; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_L0;} + var_i0 = var_p1; + var_i1 = var_p0; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + goto var_Bfunc; + var_B1:; + var_i0 = var_p0; + var_i1 = var_p3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f319(w2c_highlights* instance) { + u32 var_l0 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 0u; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 36u; + w2c_highlights_f7(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i0 = w2c_highlights_f317(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 120u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 48u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i1 -= var_i2; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 24u; + goto var_Bfunc; + } + w2c_highlights_f320(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f320(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = 9u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 43u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = 32u; + var_i2 |= var_i3; + var_i3 = 101u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = 32u; + var_i2 |= var_i3; + var_i3 = 101u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B1;} + var_i0 = var_l0; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f321(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5008u); + var_i1 = 7u; + var_i0 >>= (var_i1 & 31); + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f322(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0, var_l18 = 0, var_l19 = 0; + v128 var_l20 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l19 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l17 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62344u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62348u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l9 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13144u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l17 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l14 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 36u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 40u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l6 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l19; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l17; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62344u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62348u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l6; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + goto var_B4; + } + var_i0 = 96u; + var_i1 = 34u; + var_i2 = var_l6; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_l0 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = var_l6; + var_i1 = 1u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_l15 = var_i0; + var_i0 = var_l6; + var_i1 = 2u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l0; + var_i0 |= var_i1; + var_l16 = var_i0; + var_i0 = var_l6; + var_i1 = 7u; + var_i0 = var_i0 >= var_i1; + var_l18 = var_i0; + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i3 = var_l4; + var_i4 = 1u; + var_i5 = 0u; + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + var_i0 = var_l16; + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i2 = 36u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = var_l1; + var_i3 = var_l3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l15; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l4; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l4; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l15; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l11; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_B8; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l11; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = var_l7; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l18; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l7; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 5008u); + var_i4 = 6u; + var_i3 >>= (var_i4 & 31); + var_i4 = 1u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L9; + } + var_i0 = var_l10; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i1; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + goto var_B8; + } + var_i0 = var_l7; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l7; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L9; + var_B10:; + var_i0 = var_l11; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_B8:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_l14 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l6; + } + } + var_l6 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i2 = 10u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l15 = var_i0; + var_i0 = var_l3; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 15651u; + var_i1 = 9021u; + var_i2 = 4u; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_l18 = var_i0; + var_i1 = var_l3; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_l16 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 5u; + var_i1 = 1u; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = 47u; + var_i1 = 44u; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = var_l18; + var_i1 = var_l4; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l15; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_l6 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l11; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l4; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l1 = var_i0; + var_L29: + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i2 = 12u; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B30;} + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f45(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B30;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L29; + var_B30:; + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 32u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } + var_l5 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 14u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l0; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 46u; + var_i1 = 44u; + var_i2 = var_l4; + var_i3 = var_l0; + var_i2 -= var_i3; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i4 = 114u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = 3u; + var_l6 = var_i0; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_l6 = var_i0; + } + var_i0 = var_l4; + var_i1 = var_l0; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 4u; + var_i0 += var_i1; + var_i1 = var_l6; + var_i2 = var_l0; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 7823730u; + var_i2 ^= var_i3; + var_i3 = 8u; + var_i2 <<= (var_i3 & 31); + var_i2 = !(var_i2); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l11; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = 4294967295u; + var_i1 = var_l0; + var_i2 = var_l4; + var_i3 = 21248u; + var_i4 = 15u; + var_i5 = 47u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i1; + var_i2 = 0u; + var_i1 = (u32)((s32)var_i1 >= (s32)var_i2); + if (var_i1) { + var_i1 = var_l5; + goto var_B38; + } + var_i1 = 21u; + var_i2 = var_l0; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 1919248503u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 4u); + var_i4 = 101u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l4; + var_i4 = var_l0; + var_i3 -= var_i4; + var_i4 = 5u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + if (var_i2) {goto var_B38;} + var_i1 = 4294967295u; + var_B38:; + var_i2 = var_l2; + var_i3 = var_l12; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l5; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l5; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l2 = var_i0; + if (var_i0) { + var_i0 = var_l2; + var_l8 = var_i0; + } + var_i0 = 1u; + var_i1 = var_l12; + var_i2 = var_l1; + var_i3 = 20u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l12 = var_i0; + var_i0 = var_l1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l4; + var_i2 = var_l0; + var_i1 -= var_i2; + var_l2 = var_i1; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 6581861u; + var_i2 ^= var_i3; + var_i3 = 8u; + var_i2 <<= (var_i3 & 31); + var_i2 = !(var_i2); + var_i1 &= var_i2; + var_i2 = var_l2; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 474214786402ull; + var_j3 ^= var_j4; + var_j4 = 24ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_l5 = var_i0; + } else { + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 23u; + var_l1 = var_i0; + } else { + var_i0 = var_l8; + if (var_i0) { + var_i0 = var_l4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 23u; + var_l1 = var_i0; + } else { + var_i0 = 23u; + var_i1 = 55u; + var_i2 = 15u; + var_i3 = var_l8; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l8; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + } + } else { + var_i0 = var_l2; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 0u; + var_i1 = var_l0; + var_l2 = var_i1; + var_i2 = var_l4; + var_i1 = w2c_highlights_f82(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + if (var_i1) {goto var_B46;} + var_L47: + var_i0 = var_l2; + var_i1 = var_l4; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B46;} + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L47; + } + var_i0 = 0u; + var_B46:; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = var_l3; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + if (var_i0) { + var_i0 = 15u; + var_i1 = 14u; + var_i2 = var_l1; + var_l2 = var_i2; + var_i2 = 0u; + var_l1 = var_i2; + var_L54: + var_i2 = var_l2; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B55;} + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l3 = var_i2; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + if (var_i2) {goto var_B55;} + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_l2 = var_i2; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_i3 = var_l1; + var_i4 = var_l3; + var_i5 = 40u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_l1 = var_i2; + var_i2 = var_l3; + var_i3 = 41u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i3 = 1u; + var_i2 -= var_i3; + var_l1 = var_i2; + var_i2 = !(var_i2); + if (var_i2) { + var_i2 = var_l2; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 61u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + goto var_B53; + } + } + goto var_L54; + var_B55:; + var_i2 = 0u; + var_B53:; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 14u; + } + } else { + var_i0 = 58u; + } + } + } + } + var_l1 = var_i0; + } + } + } + var_i0 = var_l1; + var_i1 = var_l0; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l10; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l10; + var_i2 = var_l3; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i0 = var_l3; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 -= var_i1; + var_l10 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l14; + var_l6 = var_i0; + var_i0 = 0u; + var_l14 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + } + } + var_i0 = var_l13; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l13; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l13; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4752u); + var_i3 = 8u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l13 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4752u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l5 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = var_l8; + var_i1 = 0u; + var_i2 = var_l3; + var_i3 = 40u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l3; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l1; + if (var_i0) { + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = var_l13; + var_i0 = !(var_i0); + var_l9 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + } + goto var_L3; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f321(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_i1 = var_l3; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l15; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l2 = var_i0; + var_i0 = 0u; + } + var_l5 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + goto var_L3; + } + var_i0 = var_l5; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l4; + var_i3 = 36u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 48u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l5 = var_i0; + } else { + var_i0 = var_l3; + var_i0 = w2c_highlights_f321(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_L70: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f321(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B71;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B71;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L70; + var_B71:; + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } + var_l2 = var_i0; + } + var_i0 = 0u; + var_l9 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l17; + if (var_i0) { + var_i0 = 13144u; + instance->w2c_g32 = var_i0; + var_i0 = 13144u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13148u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13152u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13156u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13160u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13164u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13168u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13172u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13176u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13180u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13184u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f323(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f324(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + u64 var_l14 = 0; + v128 var_l15 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j1, var_j2; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13192u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + } else { + var_i0 = 0u; + } + } + var_l8 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l8; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + goto var_B4; + } + var_i0 = var_l8; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i0 = var_l6; + var_i1 = instance->w2c_g4; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = var_l1; + var_i3 = !(var_i3); + var_i4 = var_l1; + var_i4 = !(var_i4); + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l5; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i2 = 36u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + } + var_i0 = var_l5; + var_i1 = var_l2; + var_i2 = var_l2; + var_i3 = var_l5; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + goto var_B10; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l10; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l10; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = var_l10; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + var_i1 = var_l6; + var_i2 = var_l0; + var_i2 = w2c_highlights_f84(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L9; + } + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = var_l9; + var_i0 = w2c_highlights_f85(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) {goto var_L9;} + var_i0 = 2u; + goto var_B8; + var_B10:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_B8:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l8; + var_l11 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i0 = !(var_i0); + var_i1 = var_l8; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l8; + } + } + var_l8 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l5; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10799u; + var_i1 = 12074u; + var_i2 = 5u; + var_i3 = 4u; + var_i4 = var_l5; + var_i5 = 42u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_l8 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_l5 = var_i1; + var_l0 = var_i1; + var_i2 = 21440u; + var_i3 = 15u; + var_i4 = 72u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 56u; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 1099511627775ull; + var_j1 &= var_j2; + var_l14 = var_j1; + var_j2 = 500136110163ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B25;} + var_i0 = 17u; + var_j1 = var_l14; + var_j2 = 435710945399ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B25;} + } + var_i0 = var_l10; + var_B25:; + var_l0 = var_i0; + var_i1 = 1023u; + var_i0 = (u32)((s32)var_i0 > (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 4294967295u; + var_i2 = var_l5; + var_l0 = var_i2; + var_L29: + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i2; + var_i3 = 32u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l10; + var_i4 = 9u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + if (var_i2) { + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + goto var_L29; + } + var_i2 = 0u; + var_i3 = var_l0; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = w2c_highlights_f46(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = !(var_i3); + if (var_i3) {goto var_B28;} + var_i2 = 1u; + var_i3 = var_l0; + var_i4 = 2u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = w2c_highlights_f47(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i3) {goto var_B28;} + var_i2 = var_l0; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l0 = var_i2; + var_i3 = 29545u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 29537u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = 28265u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_B28:; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 768u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 3u; + var_i0 &= var_i1; + var_l7 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + } else { + var_i0 = var_l5; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_i0 = var_l4; + if (var_i0) { + var_i0 = 55u; + var_l1 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 63u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l7; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 55u; + var_l1 = var_i0; + } else { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l7; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + } + } + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = var_l1; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 > var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 14u; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = 6u; + var_i1 = 55u; + var_i2 = 58u; + var_i3 = var_l1; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i3 = var_l5; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + var_l1 = var_i0; + } + } + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l9; + var_i2 = var_l1; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l1; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l11; + var_l8 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l5; + var_i1 = var_l4; + var_i1 = !(var_i1); + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l0; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_l3 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l0; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_l5 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f323(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L49: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f323(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B50;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B50;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L49; + var_B50:; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_L52: + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l4; + var_i3 = var_l2; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 60u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l4 = var_i1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 -= var_i1; + var_l4 = var_i0; + } + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L52; + } + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 13192u; + instance->w2c_g32 = var_i0; + var_i0 = 13192u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13196u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13200u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13204u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13208u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13212u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13216u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f325(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 2u; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f326(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p1; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i4 = var_p1; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_p0 = var_i2; + var_i1 -= var_i2; + var_i2 = 21696u; + var_i3 = 31u; + var_i4 = 64u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 12u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f327(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0; + v128 var_l17 = simde_wasm_i64x2_make(0, 0), var_l18 = simde_wasm_i64x2_make(0, 0), var_l19 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + v128 var_o0, var_o1, var_o2, var_o3, var_o4, var_o5; + var_i0 = instance->w2c_g7; + var_l16 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62344u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13224u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l14 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 36u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + } + } else { + var_i0 = 0u; + } + } + var_l8 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62344u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l9; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L7: + var_i0 = var_l0; + var_i1 = 92u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B8;} + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1684956508u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 5u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = w2c_highlights_f325(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = var_l1; + var_i2 = w2c_highlights_f326(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l9; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B8;} + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L7; + var_B8:; + var_i0 = var_l9; + var_i1 = 255u; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = 0u; + var_l9 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_l0 = var_i0; + var_L10: + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l13; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + } + var_i0 = 1u; + var_l13 = var_i0; + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L10; + } + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = var_l3; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 35u; + var_i0 -= var_i1; + switch (var_i0) { + case 0: goto var_B18; + case 1: goto var_B24; + case 2: goto var_B25; + case 3: goto var_B19; + case 4: goto var_B15; + case 5: goto var_B15; + case 6: goto var_B15; + case 7: goto var_B15; + case 8: goto var_B15; + case 9: goto var_B15; + case 10: goto var_B15; + case 11: goto var_B15; + case 12: goto var_B15; + case 13: goto var_B15; + case 14: goto var_B15; + case 15: goto var_B15; + case 16: goto var_B15; + case 17: goto var_B15; + case 18: goto var_B15; + case 19: goto var_B15; + case 20: goto var_B15; + case 21: goto var_B15; + case 22: goto var_B15; + case 23: goto var_B15; + case 24: goto var_B15; + case 25: goto var_B15; + case 26: goto var_B17; + case 27: goto var_B15; + case 28: goto var_B15; + case 29: goto var_B15; + case 30: goto var_B15; + case 31: goto var_B15; + case 32: goto var_B15; + case 33: goto var_B15; + case 34: goto var_B15; + case 35: goto var_B15; + case 36: goto var_B15; + case 37: goto var_B15; + case 38: goto var_B15; + case 39: goto var_B15; + case 40: goto var_B15; + case 41: goto var_B15; + case 42: goto var_B15; + case 43: goto var_B15; + case 44: goto var_B15; + case 45: goto var_B15; + case 46: goto var_B15; + case 47: goto var_B15; + case 48: goto var_B15; + case 49: goto var_B15; + case 50: goto var_B15; + case 51: goto var_B15; + case 52: goto var_B15; + case 53: goto var_B15; + case 54: goto var_B15; + case 55: goto var_B15; + case 56: goto var_B21; + case 57: goto var_B16; + case 58: goto var_B20; + case 59: goto var_B17; + case 60: goto var_B17; + case 61: goto var_B15; + case 62: goto var_B15; + case 63: goto var_B15; + case 64: goto var_B15; + case 65: goto var_B15; + case 66: goto var_B15; + case 67: goto var_B15; + case 68: goto var_B15; + case 69: goto var_B15; + case 70: goto var_B15; + case 71: goto var_B15; + case 72: goto var_B15; + case 73: goto var_B15; + case 74: goto var_B15; + case 75: goto var_B15; + case 76: goto var_B15; + case 77: goto var_B15; + case 78: goto var_B15; + case 79: goto var_B15; + case 80: goto var_B15; + case 81: goto var_B15; + case 82: goto var_B15; + case 83: goto var_B15; + case 84: goto var_B15; + case 85: goto var_B15; + case 86: goto var_B15; + case 87: goto var_B15; + case 88: goto var_B23; + case 89: goto var_B15; + case 90: goto var_B22; + default: goto var_B15; + } + var_B25:; + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B24:; + var_i0 = var_l4; + var_i1 = var_l6; + var_i0 *= var_i1; + var_l4 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = var_l2; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 2u; + var_l1 = var_i0; + } + } else { + var_i0 = var_l5; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_l2 = var_i0; + } + var_i0 = var_l1; + var_i1 = var_l3; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B23:; + var_i0 = var_l7; + var_i1 = 1u; + var_i0 += var_i1; + var_l7 = var_i0; + var_i0 = var_l6; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l10; + var_l11 = var_i0; + var_i0 = var_l8; + var_l12 = var_i0; + var_i0 = var_l4; + var_i1 = 256u; + var_i2 = 0u; + var_i3 = var_l2; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 |= var_i1; + var_l10 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l7; + var_l8 = var_i0; + } + goto var_B14; + var_B22:; + var_i0 = var_l7; + var_i1 = var_l8; + var_i0 = var_i0 == var_i1; + var_i1 = var_l8; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l11; + var_l10 = var_i0; + var_i0 = var_l12; + var_l8 = var_i0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + } + var_i0 = var_l7; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l7; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + goto var_B14; + var_B21:; + var_i0 = var_l4; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_l6 = var_i0; + goto var_B14; + var_B20:; + var_i0 = 0u; + var_l6 = var_i0; + goto var_B14; + var_B19:; + var_i0 = var_l4; + var_i1 = var_l6; + var_i0 *= var_i1; + var_l4 = var_i0; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B18:; + var_i0 = var_l4; + var_i1 = var_l6; + var_i0 *= var_i1; + var_l4 = var_i0; + var_i0 = var_l5; + var_i1 = 49u; + var_i0 -= var_i1; + var_i1 = 8u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 59u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + goto var_B15; + var_B17:; + var_i0 = var_l2; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + goto var_B15; + var_B16:; + var_i0 = var_l4; + var_i1 = var_l6; + var_i0 *= var_i1; + var_l4 = var_i0; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = var_l5; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 14u; + var_l1 = var_i0; + var_i0 = var_l5; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_l15 = var_i0; + var_i1 = var_l5; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 3u; + var_i2 = 4u; + var_i3 = var_l15; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 32u; + var_l1 = var_i0; + } + var_i0 = var_l5; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_l15 = var_i0; + var_i1 = var_l5; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 3u; + var_i4 = 4u; + var_i5 = var_l15; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 32u; + var_l1 = var_i0; + } + var_i0 = var_l5; + var_i1 = 10u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l5; + var_i2 = 13u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + } + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_l1 = var_i0; + var_L36: + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_L36;} + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = 21696u; + var_i3 = 31u; + var_i4 = 64u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l1; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 17u; + var_i1 = var_l0; + var_i2 = 8u; + var_i1 = (u32)((s32)var_i1 >> (var_i2 & 31)); + var_l1 = var_i1; + var_i2 = 3u; + var_i1 = var_i1 <= var_i2; + if (var_i1) { + var_i1 = var_l4; + var_i2 = var_l0; + var_i3 = 255u; + var_i2 &= var_i3; + var_i3 = var_l6; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l4 = var_i1; + var_i1 = 17u; + var_i2 = 20u; + var_i3 = 38u; + var_i4 = 14u; + var_i5 = var_l1; + var_i6 = 3u; + var_i5 = var_i5 == var_i6; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i4 = var_l1; + var_i5 = 2u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l1; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + } else { + var_i1 = 14u; + } + var_i2 = var_l1; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 0u; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i1 = 33u; + var_i0 -= var_i1; + var_i1 = 93u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l5; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l5; + var_i3 = 10u; + var_i1 = w2c_highlights_f78(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + } + var_i0 = 53u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + } + } + var_i0 = var_l1; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 -= var_i1; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f73(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i1; + var_l1 = var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f325(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i1; + } + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 125u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l1; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = var_l1; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) { + var_i1 = 55u; + var_l4 = var_i1; + goto var_L3; + } + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f22(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 32u; + var_i2 = var_l0; + var_i3 = var_l0; + var_i4 = 1u; + var_i3 += var_i4; + var_l0 = var_i3; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 55u; + var_i2 = var_l0; + var_i3 = var_l1; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + var_i1 = 32u; + var_i2 = var_l1; + var_i3 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 4294967295u; + var_i2 = var_l0; + var_i3 = var_l1; + var_i2 = w2c_highlights_f326(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i3 = 4095u; + var_i2 &= var_i3; + var_i3 = 8u; + var_i2 >>= (var_i3 & 31); + var_i3 = var_l0; + var_i4 = 0u; + var_i3 = (u32)((s32)var_i3 < (s32)var_i4); + var_i1 = var_i3 ? var_i1 : var_i2; + var_l1 = var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = var_l1; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 5u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = 5u; + var_i1 = var_l2; + var_i2 = var_l2; + var_i2 = !(var_i2); + var_i3 = var_l1; + var_i4 = 6u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 7u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_l9 = var_i0; + var_L47: + var_i0 = var_l1; + var_i1 = 8u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + var_i1 = var_l1; + var_i2 = 10u; + var_i1 = (u32)((s32)var_i1 > (s32)var_i2); + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B48;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 91u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B48;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l0; + var_i2 = 2u; + var_i1 += var_i2; + var_i2 = 10u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B48;} + var_i0 = 32u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L47; + var_B48:; + } + } + goto var_L3; + var_B15:; + var_i0 = var_l4; + var_i1 = var_l6; + var_i0 *= var_i1; + var_l4 = var_i0; + var_i0 = 4u; + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_i1 = 2u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_i2 = var_l2; + var_o0 = var_i2 ? var_o0 : var_o1; + var_l18 = var_o0; + var_i0 = 61u; + var_o0 = simde_wasm_i8x16_splat(var_i0); + var_i1 = 10u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_i2 = var_l2; + var_o0 = var_i2 ? var_o0 : var_o1; + var_l19 = var_o0; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = instance->w2c_g3; + var_L49: + var_i1 = instance->w2c_g3; + var_i2 = var_l0; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = var_l0; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l17 = var_o1; + var_i2 = 35u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_sub(var_o1, var_o2); + var_i2 = 3u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_u8x16_le(var_o1, var_o2); + var_o2 = var_l17; + var_i3 = 91u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_sub(var_o2, var_o3); + var_o3 = var_l18; + var_o2 = simde_wasm_u8x16_le(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o2 = var_l17; + var_i3 = 123u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o3 = var_l17; + var_i4 = 125u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o3 = var_l17; + var_i4 = 10u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o4 = var_l17; + var_o5 = var_l19; + var_o4 = simde_wasm_i8x16_eq(var_o4, var_o5); + var_o3 = simde_wasm_v128_or(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_i1 = v128_i8x16_bitmask(var_o1); + var_l1 = var_i1; + if (var_i1) { + var_i1 = var_l0; + var_i2 = var_l1; + var_i2 = I32_CTZ(var_i2); + var_i1 += var_i2; + } else { + var_i1 = var_l0; + var_i2 = 16u; + var_i1 += var_i2; + var_l0 = var_i1; + goto var_L49; + } + } else { + var_i1 = var_l0; + } + var_l0 = var_i1; + var_i2 = var_l0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + instance->w2c_g4 = var_i0; + var_i0 = var_l10; + var_i1 = 255u; + var_i0 &= var_i1; + var_i1 = 24u; + var_i2 = 0u; + var_i3 = var_l2; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i2 = !(var_i2); + var_i3 = var_l10; + var_i4 = 256u; + var_i3 = var_i3 >= var_i4; + var_i2 |= var_i3; + var_i3 = var_l8; + var_i4 = 0u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B14:; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B4:; + var_i0 = var_l14; + if (var_i0) { + var_i0 = 13224u; + instance->w2c_g32 = var_i0; + var_i0 = 13224u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13228u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13232u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13236u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13240u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13244u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13248u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13252u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13256u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13260u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f328(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f329(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f330(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0; + v128 var_l12 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j2, var_j3; + var_i0 = instance->w2c_g7; + var_l11 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13264u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l2; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 124u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 31779u; + var_i1 = 9084u; + var_i2 = 4u; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = var_l2; + var_i3 = 41u; + var_i2 = var_i2 != var_i3; + var_l0 = var_i2; + var_i3 = var_l2; + var_i4 = 40u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = var_l1; + var_i1 = 99u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 3u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l1; + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = 3u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 256u; + var_i0 |= var_i1; + var_i1 = 0u; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_B12; + } + var_i0 = var_l0; + var_i1 = 512u; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B12;} + var_i0 = var_l3; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 768u; + var_i0 |= var_i1; + var_i1 = 3u; + var_i2 = var_l1; + var_i3 = 3u; + var_i2 >>= (var_i3 & 31); + var_i3 = 3u; + var_i2 &= var_i3; + var_l3 = var_i2; + var_i3 = 1u; + var_i2 += var_i3; + var_i3 = var_l3; + var_i4 = 3u; + var_i3 = var_i3 >= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i2 = 4u; + var_i3 = 0u; + var_i4 = var_l0; + var_i5 = 3u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l3; + var_i6 = 1u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + goto var_B12; + } + var_i0 = var_l1; + var_i1 = 31u; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_B12:; + var_l1 = var_i0; + } + var_i0 = var_l2; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = 3u; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B16;} + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 -= var_i2; + var_l0 = var_i1; + var_i1 = !(var_i1); + if (var_i1) {goto var_B16;} + var_i0 = var_l1; + var_i1 = 27u; + var_i2 = 31u; + var_i3 = var_l0; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_B16:; + } else { + var_i0 = var_l1; + } + } else { + var_i0 = var_l1; + } + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i2 = 7u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_l3 = var_i0; + var_i1 = var_l2; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 96u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l0; + var_i4 = 64u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l3; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 2u; + var_i0 += var_i1; + var_l0 = var_i0; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + w2c_highlights_f328(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 47u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 32u; + var_i0 |= var_i1; + var_l3 = var_i0; + var_i1 = 98u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 111u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 120u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f328(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f328(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 27u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 40u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 92u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 13u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_l1 = var_i0; + goto var_L3; + } + } + var_i0 = 0u; + var_l7 = var_i0; + w2c_highlights_f328(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = var_l2; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 48u; + var_l0 = var_i0; + } else { + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l4; + var_l8 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l8 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 48u; + var_i2 -= var_i3; + var_i3 = 9u; + var_i2 = var_i2 <= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B28;} + var_L30: + var_i0 = var_l6; + var_i1 = var_l8; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l8; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 1u; + var_l10 = var_i0; + } else { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i2 = w2c_highlights_f329(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l3; + var_i3 = w2c_highlights_f329(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l0; + var_i5 = 43u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l0; + var_i6 = 45u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B28;} + } + var_i0 = var_l0; + var_l3 = var_i0; + var_i0 = var_l8; + var_i1 = 1u; + var_i0 += var_i1; + var_l8 = var_i0; + goto var_L30; + } + var_i0 = var_l10; + var_B28:; + if (var_i0) { + var_i0 = 24u; + var_l0 = var_i0; + } else { + var_i0 = var_l2; + var_i1 = 38u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_l0 = var_i0; + } else { + var_i0 = var_l6; + var_i1 = var_l4; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 7u; + var_i1 = var_l4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 116u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B35;} + var_i0 = 4294967295u; + goto var_B35; + } + var_i0 = var_l4; + var_i1 = var_l6; + var_i2 = 21984u; + var_i3 = 31u; + var_i4 = 86u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2065u; + var_i1 = var_l4; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 712271212u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B35;} + var_i0 = 17u; + var_i1 = var_l4; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 561276275u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B35;} + } + var_i0 = 17u; + var_i1 = var_l0; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 28554735403623780ull; + var_j2 ^= var_j3; + var_j3 = 8ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B35;} + var_i0 = 4294967295u; + goto var_B35; + } + var_i0 = var_l3; + var_B35:; + var_l3 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l3; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 128u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 10u; + var_i0 >>= (var_i1 & 31); + var_l7 = var_i0; + var_i0 = var_l3; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 3u; + var_i0 &= var_i1; + var_l5 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 3u); + var_i2 = 105u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 5u; + } else { + var_i0 = var_l5; + } + var_l5 = var_i0; + } + } else { + var_i0 = 4294967295u; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 99u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 15u; + var_i1 = 4294967295u; + var_i2 = var_l1; + var_i3 = 4294967167u; + var_i2 &= var_i3; + var_i3 = 64u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = 3u; + var_i1 &= var_i2; + var_l3 = var_i1; + var_i1 = !(var_i1); + if (var_i1) {goto var_B43;} + var_i0 = 58u; + var_i1 = var_l1; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_l0 = var_i1; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B43;} + var_i0 = 15u; + var_i1 = 58u; + var_i2 = var_l3; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = 24u; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i2 = var_l0; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B43;} + var_i0 = 58u; + var_i1 = var_l0; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 4u; + var_i2 &= var_i3; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B43;} + var_i0 = 4294967295u; + var_B43:; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + if (var_i0) { + var_i0 = var_l5; + if (var_i0) { + var_i0 = 15u; + var_i1 = 58u; + var_i2 = 55u; + var_i3 = var_l5; + var_i4 = 3u; + var_i3 &= var_i4; + var_l0 = var_i3; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 128u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l5; + var_i2 = 4u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_l7 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 128u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = var_l2; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l2; + var_i2 = 43u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = var_l6; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l6; + var_i2 = var_l4; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 60u; + var_i1 = 6u; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l2; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 25u; + var_i2 = var_l2; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + var_l0 = var_i0; + } + } + } + } + } + } + var_i0 = var_l0; + var_i1 = var_l4; + var_i2 = var_l6; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 4294967167u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i1 = 99u; + var_i0 &= var_i1; + var_i1 = var_l7; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 3u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l1; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i2 = 2u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B49;} + var_i0 = var_l1; + var_i1 = 8u; + var_i0 += var_i1; + var_i1 = var_l1; + var_i2 = var_l1; + var_i3 = 24u; + var_i2 &= var_i3; + var_i3 = 24u; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_B49; + } + var_i0 = var_l7; + var_i1 = 5u; + var_i0 <<= (var_i1 & 31); + var_i1 = var_l7; + if (var_i1) {goto var_B49;} + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 4294967167u; + var_i3 &= var_i4; + var_i4 = 64u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_B49:; + var_l1 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 13264u; + instance->w2c_g32 = var_i0; + var_i0 = 13264u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13268u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f331(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 91u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_L2: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 61u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B3;} + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L2; + var_B3:; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 91u; + var_i0 = var_i0 != var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L5: + var_i0 = instance->w2c_g4; + var_i1 = 93u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B6;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_L7: + var_i0 = var_l2; + var_i1 = var_l3; + var_i0 = var_i0 <= var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B8;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 61u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B8;} + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L7; + var_B8:; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = var_l3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L5; + } + var_l5 = var_i0; + var_B6:; + var_i0 = var_p1; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g22; + var_i2 = var_l2; + var_i3 = 2u; + var_i2 += var_i3; + var_p0 = var_i2; + var_i3 = 32u; + var_i2 = var_i2 <= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12416u; + var_i1 = 93u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12417u; + var_i1 = 61u; + var_i2 = var_l2; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l2; + var_i1 = 12417u; + var_i0 += var_i1; + var_i1 = 93u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12416u; + var_i1 = var_p0; + var_i2 = var_p1; + w2c_highlights_f62(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f332(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l6 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13272u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l2 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l4 = var_i1; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + var_i0 = w2c_highlights_f331(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_L3;} + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = instance->w2c_g4; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 2u); + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g3; + var_i5 = instance->w2c_g4; + var_i6 = 2u; + var_i5 += var_i6; + var_i4 = var_i4 > var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = 44u; + var_i0 = w2c_highlights_f331(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + var_i3 = 22304u; + var_i4 = 7u; + var_i5 = 22u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i1; + var_i2 = 255u; + var_i1 &= var_i2; + var_i2 = var_l4; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 < (s32)var_i3); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l2; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 15u; + } else { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 16u; + var_i1 = 29u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + } + } + } + var_l0 = var_i0; + var_i1 = 19u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 255u; + var_i1 = (u32)((s32)var_i1 > (s32)var_i2); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l2 = var_i0; + } + var_i0 = 6u; + var_i1 = var_l0; + var_i2 = var_l3; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 0u; + var_i4 = var_l0; + var_i5 = 58u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l0; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } else { + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } + var_l1 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 13272u; + instance->w2c_g32 = var_i0; + var_i0 = 13272u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13276u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f333(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1701080677u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 102u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_p1; + var_i2 = var_p0; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f334(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 4u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f335(w2c_highlights* instance) { + u32 var_l0 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = w2c_highlights_f334(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_B1;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f336(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j3, var_j4; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 58u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_l3; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 60u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 58u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = 41u; + var_i1 = 125u; + var_i2 = var_l3; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f73(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 2u; + var_i0 |= var_i1; + var_i1 = 70u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 60u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_l2 = var_i1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = var_l2; + var_i3 = 22400u; + var_i4 = 15u; + var_i5 = 53u; + var_i1 = w2c_highlights_f75(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 8u); + var_i3 = 120u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 7594869363793224801ull; + var_i3 = var_j3 == var_j4; + var_i2 &= var_i3; + var_i3 = var_l2; + var_i4 = var_l1; + var_i3 -= var_i4; + var_i4 = 9u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 58u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = var_l2; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 64u; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + w2c_highlights_f336(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + goto var_L9; + } + var_i0 = var_l4; + var_i0 = !(var_i0); + var_i1 = var_l2; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + goto var_L9; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i2 = var_l2; + var_i3 = var_l3; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = var_l2; + var_i1 = var_l5; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 -= var_i1; + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + goto var_L9; + var_B10:; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f337(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5264u); + var_i1 = 7u; + var_i0 >>= (var_i1 & 31); + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f338(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0; + v128 var_l17 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l16 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l8 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13280u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l15 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l4 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l10 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L6: + var_i0 = var_l0; + var_i1 = var_l10; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B7;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l11; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B7;} + var_i0 = var_l1; + var_l0 = var_i0; + goto var_L6; + var_B7:; + var_i0 = 1u; + var_i1 = var_l8; + var_i2 = var_l0; + var_i3 = var_l10; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l10; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l14 = var_i0; + var_i0 = var_l8; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 4u; + var_l4 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l3; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 9u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 5u; + var_i1 = var_l13; + if (var_i1) { + var_i1 = 1u; + var_l5 = var_i1; + var_i1 = 1u; + } else { + var_i1 = 4u; + } + var_i2 = var_l9; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_L14: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B15;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l12; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l12; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B15;} + var_i0 = var_l1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l1; + var_i2 = var_l10; + var_i3 = var_l12; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l1; + var_i2 = var_l11; + var_i3 = var_l12; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L14; + } + var_i0 = var_l12; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l10; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 41u; + var_i1 = 125u; + var_i2 = var_l10; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L14; + } + } + var_i0 = 2u; + var_i1 = var_l12; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B13;} + var_i0 = var_l12; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i1; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i1 = var_l1; + } + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B13;} + var_i0 = 3u; + var_i1 = 1u; + var_i2 = var_l0; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i2; + var_l0 = var_i2; + var_L22: + var_i2 = var_l0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B23;} + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l11 = var_i2; + var_i2 = w2c_highlights_f47(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l11; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l11; + var_i5 = 46u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + if (var_i2) {goto var_B23;} + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + goto var_L22; + var_B23:; + var_i2 = 0u; + var_i3 = var_l0; + var_i4 = var_l1; + var_i3 = var_i3 == var_i4; + if (var_i3) {goto var_B21;} + var_i2 = var_l0; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 5264u); + var_i3 = 32u; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + } + var_i2 = var_l1; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l1 = var_i2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + } else { + var_i2 = var_l1; + } + } else { + var_i2 = var_l0; + } + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_B21:; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_B13; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L14; + } + UNREACHABLE; + var_B15:; + var_i0 = 0u; + var_B13:; + var_l1 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 5u; + var_l4 = var_i0; + w2c_highlights_f335(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f333(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l9 = var_i0; + } else { + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_L3;} + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_l13 = var_i0; + if (var_i0) { + var_i0 = 3u; + var_l4 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + } + var_i0 = var_l1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 6u; + var_l4 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + } + var_i0 = var_l1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_l4 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f335(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i2 = 22400u; + var_i3 = 15u; + var_i4 = 53u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 4u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 18u; + var_i1 = 20u; + var_i2 = 17u; + var_i3 = var_l1; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = var_l1; + var_i1 = 3u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 4u; + var_i1 = var_l4; + var_i2 = var_l4; + var_i3 = 2u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + } + var_i0 = 1u; + var_i1 = var_l9; + var_i2 = var_l1; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 -= var_i1; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 1702063205u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f333(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + } + } + } + } + var_i0 = var_l3; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f268(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_L3;} + var_i0 = var_l14; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + w2c_highlights_f336(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5520u); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l14; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l14; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l4; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L41: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L41; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l4; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 6u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = var_l4; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_l4 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + } + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l4 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5520u); + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L54: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B55;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B55;} + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B55; + } + var_i0 = var_l1; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L54; + } + var_i0 = var_l1; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + w2c_highlights_f336(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } + goto var_L54; + var_B55:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f337(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L60: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f337(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L60; + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l5; + var_i2 = var_l3; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i4 = 124u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l3; + var_i4 = 59u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + } + var_i0 = var_l3; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5520u); + var_i1 = 4u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = 32u; + var_i2 = var_l3; + var_i3 = 44u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f334(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + } else { + w2c_highlights_f335(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 58u; + var_l0 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + } else { + var_i0 = var_l7; + if (var_i0) { + var_i0 = 17u; + var_i1 = 14u; + var_i2 = var_l3; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l14; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } else { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + var_l0 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = var_l3; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f47(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i0 &= var_i1; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 24u; + var_l0 = var_i0; + } else { + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + } + } + } + } + } + var_i0 = var_l0; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l15; + if (var_i0) { + var_i0 = 13280u; + instance->w2c_g32 = var_i0; + var_i0 = 13280u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13284u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13288u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13292u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13296u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13300u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f339(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f340(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5520u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f341(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0; + v128 var_l15 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l14 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l8 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13312u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + } + } else { + var_i0 = 0u; + } + } + var_l6 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l14; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l13 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l13; + var_i1 = instance->w2c_g4; + var_i2 = 10u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + } + var_i0 = var_l13; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = var_l8; + var_l1 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f339(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = var_l11; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_L10: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 2u; + var_i2 += var_i3; + var_l0 = var_i2; + var_i2 = w2c_highlights_f339(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B9; + } else { + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L10; + } + UNREACHABLE; + } + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 12416u; + var_i1 = 32037u; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12416u; + var_i1 = 2u; + var_i2 = 2u; + var_i3 = 4u; + w2c_highlights_f67(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B9:; + } else { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l11; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 3u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = var_l2; + var_i3 = var_l13; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L16: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_l0; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B17;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l0; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B17;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B17;} + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + goto var_L16; + var_B17:; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_i1 = var_l4; + var_i2 = var_l11; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = var_l11; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 46u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 14u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l2; + var_i2 = var_l1; + var_i3 = 22592u; + var_i4 = 7u; + var_i5 = 37u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l4; + var_i2 = var_l3; + var_i3 = 8u; + var_i2 >>= (var_i3 & 31); + var_l0 = var_i2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 1u; + var_i1 = var_l10; + var_i2 = var_l0; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i0 = var_l1; + var_i1 = var_l2; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 6581861u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 255u; + var_i1 &= var_i2; + var_l0 = var_i1; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_l3 = var_i0; + } else { + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = 55u; + var_i1 = var_l5; + if (var_i1) { + var_i1 = 16u; + var_i2 = 29u; + var_i3 = var_l0; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + } else { + var_i1 = var_l4; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_l9; + var_i2 = var_l0; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) { + var_i1 = 58u; + } else { + var_i1 = 2u; + var_l4 = var_i1; + var_i1 = 15u; + } + } else { + var_i1 = var_l6; + var_i2 = var_l7; + var_i1 = var_i1 == var_i2; + var_i2 = var_l7; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = 59u; + } else { + var_i1 = 6u; + var_i2 = 14u; + var_i3 = 58u; + var_i4 = var_l0; + var_i5 = 40u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l2; + var_i4 = var_l1; + var_i3 = w2c_highlights_f82(instance, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_i3 ? var_i1 : var_i2; + } + } + } + var_i2 = var_l10; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = var_l2; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l11; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 1u; + var_i0 += var_i1; + var_l6 = var_i0; + var_i0 = var_l4; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l6; + } else { + var_i0 = var_l7; + } + var_l7 = var_i0; + } + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 0u; + var_i2 = var_l6; + var_i3 = var_l7; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = var_l6; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l6; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l9; + var_i2 = var_l0; + var_i3 = 91u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 93u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4752u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l11; + var_i0 = w2c_highlights_f340(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l11; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_l1 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 0u; + } + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f340(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L35: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f340(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L35; + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 13312u; + instance->w2c_g32 = var_i0; + var_i0 = 13312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13316u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13320u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13324u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13328u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13332u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13336u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13340u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f342(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g3; + var_i1 = var_p1; + instance->w2c_g3 = var_i1; + var_i1 = var_p0; + instance->w2c_g4 = var_i1; + w2c_highlights_f229(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_i0 = var_p1; + instance->w2c_g4 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f343(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_l1 = var_i0; + var_i1 = 42u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 47u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = var_p0; + var_i2 = 2u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + var_i1 = var_l1; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + w2c_highlights_f4(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i1 = instance->w2c_g4; + var_p0 = var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f344(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g2; + var_i1 = instance->w2c_g22; + var_l3 = var_i1; + var_i1 = 1u; + instance->w2c_g22 = var_i1; + var_L0: + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B1;} + var_i1 = var_p0; + var_i1 = w2c_highlights_f204(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i1 = var_p0; + var_i1 = w2c_highlights_f73(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i1; + var_i1 = var_p1; + if (var_i1) { + var_i1 = instance->w2c_g57; + var_i2 = instance->w2c_g60; + var_i1 |= var_i2; + var_i2 = instance->w2c_g62; + var_i3 = instance->w2c_g55; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i2 = var_l2; + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B1;} + } + var_i1 = var_l2; + var_i1 = w2c_highlights_f205(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + instance->w2c_g2 = var_i1; + var_i1 = 74u; + var_i2 = var_p0; + var_i3 = var_l2; + var_i4 = var_p1; + w2c_highlights_f214(instance, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g74; + var_p1 = var_i1; + var_i1 = var_l2; + var_p0 = var_i1; + goto var_L0; + var_B1:; + instance->w2c_g2 = var_i0; + var_i0 = var_l3; + instance->w2c_g22 = var_i0; + var_i0 = var_l3; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 0u; + var_i2 = var_p1; + var_i3 = 8u; + var_i2 <<= (var_i3 & 31); + var_i3 = 74u; + var_i2 |= var_i3; + w2c_highlights_f212(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + w2c_highlights_f224(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f345(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0; + v128 var_l13 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l11 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13344u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + } + var_i0 = w2c_highlights_f206(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f207(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + w2c_highlights_f342(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + } + var_l5 = var_i0; + var_L4: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l11; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i2 = 60u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = var_l5; + var_i1 = var_l6; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + } + var_L8: + var_i0 = var_l2; + var_i1 = var_l6; + var_i0 = var_i0 < var_i1; + var_i1 = var_l6; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B9;} + var_i0 = var_l6; + var_l0 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_L11: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l8; + var_i1 = 1u; + var_i0 += var_i1; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = 32u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f221(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = var_l0; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B12;} + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i0 |= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = var_l4; + var_i1 = var_l0; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + } + var_i0 = var_l1; + var_l0 = var_i0; + goto var_L11; + var_B12:; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B10;} + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = 96u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l3; + var_i3 = 126u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B10;} + var_i0 = var_l0; + var_l1 = var_i0; + var_L15: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l3; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L15; + var_B16:; + var_i0 = 0u; + var_i1 = var_l1; + var_i2 = var_l0; + var_i1 -= var_i2; + var_l12 = var_i1; + var_i2 = 3u; + var_i1 = var_i1 < var_i2; + if (var_i1) {goto var_B10;} + var_i0 = var_l1; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = var_l12; + var_i3 = var_l8; + var_i4 = var_l0; + var_i5 = var_l4; + var_i4 -= var_i5; + var_i5 = 0u; + var_i6 = var_l4; + var_i4 = var_i6 ? var_i4 : var_i5; + var_i0 = w2c_highlights_f223(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = instance->w2c_g75; + if (var_i1) {goto var_B10;} + var_i0 = instance->w2c_g3; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B10;} + var_i0 = var_l0; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B10:; + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_l6 = var_i0; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 1u; + var_l10 = var_i0; + goto var_B9; + } + } else { + var_i0 = 0u; + var_i1 = instance->w2c_g3; + var_i2 = var_l6; + var_i3 = 7u; + var_i2 += var_i3; + var_i1 = var_i1 < var_i2; + if (var_i1) {goto var_B19;} + var_i0 = 0u; + var_i1 = var_l6; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 29810u; + var_i1 = var_i1 == var_i2; + var_l0 = var_i1; + var_i2 = var_l6; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l1 = var_i2; + var_i3 = 1869639017u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = var_l1; + var_i4 = 1869641829u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B19;} + var_i0 = 0u; + var_i1 = var_l6; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 6u); + var_l0 = var_i1; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 9u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B19;} + var_i0 = 1u; + var_B19:; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l6; + w2c_highlights_f342(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_i1 = 0u; + var_i0 = w2c_highlights_f344(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_l5 = var_i0; + var_i0 = var_l6; + var_i1 = var_l2; + var_i2 = var_l2; + var_i3 = var_l6; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + goto var_L4; + } + var_i0 = var_l6; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + } + goto var_L8; + var_B9:; + var_i0 = var_l2; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_l10; + if (var_i0) { + var_i0 = var_l6; + var_l0 = var_i0; + goto var_L4; + } + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l2; + w2c_highlights_f342(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_i1 = 1u; + var_i2 = 8u; + var_i3 = 0u; + var_i0 = w2c_highlights_f195(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 32u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L4; + } + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 757932348u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l2; + var_i3 = 4u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l2; + var_i2 = var_l2; + var_i2 = w2c_highlights_f204(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f226(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i1; + w2c_highlights_f342(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_l0 = var_i0; + goto var_L4; + } + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_l8 = var_i0; + var_i0 = var_l7; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i2 = var_l0; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B27;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B28;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B28;} + var_i0 = var_l4; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 62u; + var_i2 = 60u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + goto var_B27; + } + goto var_B28; + } + var_L32: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B33;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l4 = var_i1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B27;} + var_i0 = var_l4; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B33;} + var_i0 = var_l4; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_i1 = var_l3; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l4; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L32; + } + var_i0 = var_l4; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f144(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L32; + } + var_i0 = 2u; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f144(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + goto var_L32; + } + var_i0 = var_l3; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f343(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = var_l0; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l1; + var_l0 = var_i0; + goto var_L32; + } + } + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = var_l4; + var_i2 = w2c_highlights_f43(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l3; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l3 = var_i0; + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L32; + var_B33:; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + goto var_B27; + var_B28:; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_B27:; + var_l0 = var_i0; + var_i1 = var_l8; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l7; + var_i2 = var_l8; + var_i3 = 62u; + var_i2 = w2c_highlights_f79(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + } + } + var_i0 = var_l0; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l2; + w2c_highlights_f342(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_l5 = var_i1; + var_i2 = var_l2; + var_i3 = 2u; + var_i2 += var_i3; + var_l1 = var_i2; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = var_l2; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_L45: + var_i0 = instance->w2c_g4; + var_i1 = var_l5; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B46;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_l4 = var_i1; + var_i2 = var_l2; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B46;} + var_i0 = 1u; + var_i1 = var_l3; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L45; + var_B46:; + var_i0 = 67u; + var_i1 = 51u; + var_i2 = var_l3; + var_i3 = var_l1; + var_i4 = instance->w2c_g4; + var_i3 = var_i3 < var_i4; + var_i4 = var_l1; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 65u; + var_i4 -= var_i5; + var_i5 = 25u; + var_i4 = var_i4 <= var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_L47: + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L50: + var_i0 = instance->w2c_g4; + var_i1 = var_l5; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B51;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B51;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L50; + var_B51:; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 34u; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 62u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L47; + } + goto var_B43; + } + var_i0 = instance->w2c_g3; + var_i1 = var_l5; + instance->w2c_g3 = var_i1; + var_i1 = var_l2; + instance->w2c_g4 = var_i1; + var_i1 = 3u; + w2c_highlights_f191(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_B43:; + var_i0 = var_l5; + instance->w2c_g4 = var_i0; + goto var_L4; + } + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g3; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + var_l4 = var_i0; + var_i0 = var_l2; + var_l0 = var_i0; + var_L54: + var_i0 = var_l0; + var_i1 = instance->w2c_g0; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + goto var_B55; + } + var_i0 = var_l0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + goto var_B55; + } + var_i0 = var_l1; + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l1; + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B55;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 -= var_i1; + var_l0 = var_i0; + goto var_L54; + var_B55:; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L58: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B59;} + var_i0 = 1u; + var_i1 = var_l4; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l3 = var_i2; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l3; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B59;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L58; + } + var_i0 = var_l3; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f144(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + goto var_L58; + } + var_i0 = var_l3; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f343(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = var_l0; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l1; + var_l0 = var_i0; + goto var_L58; + } + } + var_i0 = 0u; + var_i1 = var_l3; + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i2 = w2c_highlights_f47(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 5520u); + var_i3 = 4u; + var_i2 >>= (var_i3 & 31); + var_i3 = 1u; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B53;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L58; + var_B59:; + var_i0 = var_l4; + var_B53:; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l2; + w2c_highlights_f342(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = 5u; + w2c_highlights_f68(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g3; + var_l5 = var_i0; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + w2c_highlights_f194(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + instance->w2c_g31 = var_i0; + var_i0 = var_l5; + var_l0 = var_i0; + goto var_L4; + } + } + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L4; + var_B5:; + var_i0 = var_l5; + var_i1 = instance->w2c_g3; + w2c_highlights_f342(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f346(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_l1 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 120u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = 2u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 117u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 123u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 4u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = 8u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_p0; + var_i2 = var_p0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_p0 = var_i0; + var_L6: + var_i0 = var_p0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L6; + } + var_i0 = var_p0; + goto var_Bfunc; + } + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f347(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 1u; + var_l1 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = 34u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_L2;} + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L0;} + var_i0 = 0u; + var_l1 = var_i0; + var_B1:; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f348(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p1; + var_i1 = 65535u; + var_i0 &= var_i1; + var_i1 = 23331u; + var_i2 = 9053u; + var_i0 = w2c_highlights_f70(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p1; + var_i3 = 65536u; + var_i2 &= var_i3; + var_p1 = var_i2; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 5u; + var_i1 = 4u; + var_i2 = var_p1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + var_i1 = var_l2; + var_i0 |= var_i1; + var_i1 = 0u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f349(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0; + v128 var_l17 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j2, var_j3; + var_i0 = instance->w2c_g7; + var_l16 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13344u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l15 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + var_l8 = var_i0; + } + var_i0 = var_l6; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l6; + var_i0 = w2c_highlights_f348(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + } + var_i0 = var_l10; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f347(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l10; + } + } + var_l10 = var_i0; + var_L5: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = var_l0; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f81(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l7; + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i3 = var_l4; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B6;} + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l1; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 = w2c_highlights_f348(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + goto var_L5; + } + var_i0 = var_l3; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 65537u; + var_i0 = w2c_highlights_f348(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + goto var_L5; + } + var_i0 = 1u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l3; + var_i4 = 35u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l8; + var_l2 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l11; + var_l12 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = instance->w2c_g41; + var_i1 = instance->w2c_g42; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5520u); + var_i1 = 32u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = w2c_highlights_f347(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + goto var_L5; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L15: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B16;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B16; + } + var_i0 = var_l2; + var_i1 = 92u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B16;} + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f346(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L15; + var_B16:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l1; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l3; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f346(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l2 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 5520u); + var_i2 = 64u; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = 44u; + var_i2 = var_l3; + var_i3 = 92u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L5; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i1 = var_l0; + var_i0 -= var_i1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 114u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l0; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_l0 = var_i0; + } + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = w2c_highlights_f347(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + } else { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L27: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B28;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 34u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B28;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B28;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L27; + var_B28:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L5; + } + var_i0 = 4294967295u; + var_l3 = var_i0; + var_i0 = var_l12; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 22752u; + var_i3 = 31u; + var_i4 = 105u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 18u; + var_i1 = var_l3; + var_i2 = var_l0; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 435727982962ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + var_i1 -= var_i2; + var_i2 = 6u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 532u; + var_i1 = var_l3; + var_i2 = var_l0; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 128034844735589ull; + var_j2 ^= var_j3; + var_j3 = 16ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + } + } + var_i0 = var_l3; + var_i1 = 255u; + var_i0 &= var_i1; + var_l9 = var_i0; + var_i0 = var_l3; + var_i1 = 4294967295u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + } + var_i0 = 1u; + var_i1 = var_l4; + var_i2 = var_l3; + var_i3 = 8u; + var_i2 >>= (var_i3 & 31); + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + goto var_B32; + } + var_i0 = instance->w2c_g4; + var_l14 = var_i0; + var_i0 = 15u; + var_l9 = var_i0; + var_i0 = var_l2; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l13 = var_i0; + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + goto var_B32; + } + var_i0 = 23u; + var_l9 = var_i0; + var_i0 = var_l4; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + goto var_B32; + } + var_i0 = 1u; + var_l9 = var_i0; + var_i0 = var_l5; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_l5 = var_i0; + goto var_B32; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + goto var_B32; + } + var_i0 = 59u; + var_l9 = var_i0; + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g39; + var_i0 &= var_i1; + var_i1 = instance->w2c_g38; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) {goto var_B32;} + var_i0 = var_l1; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 55u; + var_i2 = var_l0; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + goto var_B32; + } + var_i0 = 14u; + var_i1 = 58u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_B32:; + var_i0 = var_l9; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L5; + } + var_i0 = var_l1; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i2 = 96u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l12; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + if (var_i0) { + var_i0 = 15u; + } else { + var_i0 = 14u; + var_i1 = 58u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l12; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 40u; + var_i1 = var_l12; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l14 = var_i0; + var_i0 = var_l2; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + var_i0 = instance->w2c_g4; + var_l13 = var_i0; + } + goto var_L5; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l1; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L5; + } + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L5; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g36 = var_i0; + var_i0 = instance->w2c_g42; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g41; + if (var_i0) { + w2c_highlights_f38(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = 1u; + instance->w2c_g39 = var_i0; + } else { + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = var_l1; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g36; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g36 = var_i0; + } + } else { + var_i0 = instance->w2c_g41; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g42; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g42 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f41(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + } + } else { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5520u); + var_i1 = 128u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g38 = var_i0; + } else { + var_i0 = instance->w2c_g38; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g38 = var_i0; + } + } + } + } + } + } + var_i0 = var_l7; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l7; + var_i2 = 1u; + var_i1 -= var_i2; + var_i2 = var_l7; + var_i3 = var_l7; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 5776u); + var_i3 = 1u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_i0 = var_l1; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i1 = var_l1; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + instance->w2c_g39 = var_i0; + var_i0 = 1u; + var_i1 = var_l5; + var_i2 = var_l5; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = 2u; + var_i1 = 0u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l4; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + goto var_L5; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5776u); + var_i1 = 2u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = var_l1; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = var_l14; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 5776u); + var_i2 = 2u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = var_l13; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L5; + } + var_L62: + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5776u); + var_i1 = 2u; + var_i0 &= var_i1; + if (var_i0) {goto var_L62;} + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i1 = var_l1; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 35u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_l11 = var_i0; + } else { + var_i0 = 25u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L5; + var_B6:; + var_i0 = var_l15; + if (var_i0) { + var_i0 = 13344u; + instance->w2c_g32 = var_i0; + var_i0 = 13344u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13348u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13352u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13356u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13360u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13364u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13368u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f350(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 5776u); + var_i2 = 3u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f351(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5776u); + var_i1 = 6u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f352(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0; + v128 var_l17 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l16 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13376u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l15 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } + } else { + var_i0 = 0u; + } + } + var_l8 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l8; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + goto var_B4; + } + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_L10: + var_i0 = var_l8; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 34u; + var_i2 = 92u; + var_i3 = 36u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 39u; + var_i2 = 36u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l1 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B11; + } + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + instance->w2c_g4 = var_i0; + goto var_B9; + } + var_i0 = var_l2; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = var_l1; + var_i2 = var_l1; + var_i2 = w2c_highlights_f51(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L10; + } + var_i0 = var_l2; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 39u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L10; + } + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 3u; + var_i0 += var_i1; + } else { + var_i0 = var_l2; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B9; + } + } + var_l2 = var_i0; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_l0 = var_i0; + goto var_L10; + } + var_i0 = var_l7; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + goto var_B8; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L10; + } + UNREACHABLE; + var_B11:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + goto var_B8; + var_B9:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_B8:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l8; + var_l13 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l8; + } + } + var_l8 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l8 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_l8 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l5; + var_i0 = w2c_highlights_f350(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_l4 = var_i1; + var_i2 = var_l5; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l12; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l4; + var_i3 = var_l0; + var_i4 = 126u; + var_i3 = var_i3 == var_i4; + var_l14 = var_i3; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l14; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_L30: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B31;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f350(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B31;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L30; + var_B31:; + var_i0 = 47u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l5; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + var_L33: + var_i0 = var_l4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f350(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + goto var_L33; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l6 = var_i0; + goto var_L3; + } + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_L37: + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L37; + } + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_L40: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B41;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 5776u); + var_i2 = 4u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B41;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L40; + var_B41:; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l10; + var_i1 = 3u; + var_i0 &= var_i1; + var_l14 = var_i0; + var_i0 = var_l5; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l2; + var_i2 = var_l5; + var_i3 = 23136u; + var_i4 = 3u; + var_i5 = 29u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i3 = var_l9; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l9; + var_i2 = var_l5; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 1701342825u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l4; + var_i4 = 17u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l4; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + } else { + var_i0 = var_l9; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = var_l0; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l12; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = var_l3; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 5776u); + var_i2 = 7u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + var_i1 = var_l14; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 59u; + } else { + var_i0 = 14u; + var_i1 = 29u; + var_i2 = 58u; + var_i3 = var_l3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l6; + var_i2 = !(var_i2); + var_i3 = var_l12; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i3; + var_i3 = var_l12; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i3; + var_i3 = 1u; + var_i4 = var_l0; + var_i4 = w2c_highlights_f46(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = var_l0; + var_i5 = w2c_highlights_f44(instance, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 |= var_i5; + var_i5 = var_l0; + var_i5 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i5) + 5776u); + var_i6 = 5u; + var_i5 >>= (var_i6 & 31); + var_i6 = 1u; + var_i5 &= var_i6; + var_i4 |= var_i5; + if (var_i4) {goto var_B46;} + var_i3 = var_l3; + var_i4 = 39u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 39u; + var_i4 = var_i4 == var_i5; + if (var_i4) {goto var_B46;} + var_i3 = var_l0; + var_i4 = 60u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 126u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + if (var_i3) { + var_i3 = var_l3; + var_i3 = w2c_highlights_f46(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l3; + var_i5 = 47u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + goto var_B46; + } + var_i3 = var_l0; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + if (var_i3) { + var_i3 = var_l3; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l12; + var_i5 = 2u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i4 = var_l3; + var_i5 = 47u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + goto var_B46; + } + var_i3 = var_l0; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + if (var_i3) { + var_i3 = var_l3; + var_i3 = w2c_highlights_f350(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l3; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + goto var_B46; + } + var_i3 = 0u; + var_B46:; + var_i4 = var_l14; + var_i5 = 2u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + var_l4 = var_i0; + var_i0 = 1u; + } + var_l6 = var_i0; + var_i0 = var_l4; + var_i1 = var_l2; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l7; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 1u; + var_i0 -= var_i1; + var_l7 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l13; + var_l8 = var_i0; + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 5776u); + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = 1u; + var_i2 = 2u; + var_i3 = 3u; + var_i4 = var_l0; + var_i5 = 91u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l0; + var_i4 = 40u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 |= var_i1; + var_l10 = var_i0; + var_i0 = var_l11; + var_i1 = 1u; + var_i0 += var_i1; + var_l11 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l11; + if (var_i0) { + var_i0 = var_l11; + var_i1 = 1u; + var_i0 -= var_i1; + var_l11 = var_i0; + var_i0 = var_l10; + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_l10 = var_i0; + } + var_i0 = 1u; + } + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l4 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_i1 = var_l9; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l12; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 60u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = 0u; + } + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f351(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L61: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f351(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B62;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B62;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L61; + var_B62:; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l15; + if (var_i0) { + var_i0 = 13376u; + instance->w2c_g32 = var_i0; + var_i0 = 13376u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13380u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13384u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13388u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13392u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13396u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13400u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13404u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13408u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f353(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j1, var_j2, var_j3; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 23264u; + var_i3 = 31u; + var_i4 = 76u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l4 = var_i0; + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_p1 = var_i0; + var_i1 = 9u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 7161117524010233449ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + var_i1 = var_p1; + var_i2 = 14u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 7954884599198281065ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_p1; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p0; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 7813573208857080432ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + var_i2 = var_p1; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 1935764579u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 273u; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = 8u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8751745755891331696ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 529u; + goto var_Bfunc; + } + } + var_i0 = 17u; + goto var_Bfunc; + } + var_i0 = var_p3; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 6u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = 6u; + var_i2 = var_i2 > var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 4294967295u; + goto var_Bfunc; + } + var_i0 = var_l5; + var_i1 = 255u; + var_i0 &= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f354(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0; + v128 var_l18 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l17 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13416u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l15 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + } + var_l1 = var_i0; + } + var_i0 = var_l12; + var_i0 = w2c_highlights_f59(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l12 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l17; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l14 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l14; + var_i1 = instance->w2c_g4; + var_i2 = 10u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 < var_i1; + var_l13 = var_i0; + if (var_i0) { + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } + var_i0 = var_l14; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = var_l14; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 0u; + var_i2 = var_l13; + var_i2 = !(var_i2); + var_i3 = var_l14; + var_i4 = instance->w2c_g0; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l13 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l7; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l7; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l7; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 3u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i4 = var_l7; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l10; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f74(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 27u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_l10 = var_i0; + goto var_L3; + } + var_i0 = 1u; + var_l10 = var_i0; + var_i0 = var_l0; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f57(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i3 = 0u; + var_i0 = w2c_highlights_f353(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 255u; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 9u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_l9 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f57(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l16 = var_i0; + var_i0 = var_l3; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 117u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 85u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 76u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l16; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l16; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f57(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = 4294967295u; + var_i1 = var_l2; + var_i2 = var_l3; + var_i3 = 0u; + var_i4 = var_l9; + var_i1 = w2c_highlights_f353(instance, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + if (var_i0) { + var_i0 = var_l8; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 55u; + } else { + var_i0 = var_l16; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 58u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l11; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = 15u; + var_i1 = 16u; + var_i2 = var_l5; + var_i3 = var_l4; + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l5; + var_i1 = var_l4; + var_i1 = !(var_i1); + var_i0 &= var_i1; + var_i1 = var_l11; + var_i1 = !(var_i1); + var_i2 = var_l7; + var_i3 = 59u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l7; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 15u; + } else { + var_i0 = var_l7; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l13; + var_i1 = w2c_highlights_f47(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l13; + var_i3 = 93u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l13; + var_i4 = 41u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i2 = var_l2; + var_i3 = var_l14; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 16u; + } else { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l7; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + var_i1 = var_l3; + var_i0 = w2c_highlights_f240(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + } + } + } + } else { + var_i0 = var_l0; + } + var_i1 = var_l2; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i2 = var_l0; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 0u; + var_i2 = var_l4; + var_i3 = 1u; + var_i2 -= var_i3; + var_i3 = var_l4; + var_i4 = var_l4; + var_i2 = var_i4 ? var_i2 : var_i3; + var_l4 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + } + var_i0 = var_l0; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l6; + var_i3 = var_l0; + var_i4 = 91u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l6 = var_i1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 1u; + var_i0 -= var_i1; + var_l6 = var_i0; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 125u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l3; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l13; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f73(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 43u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f241(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l15; + if (var_i0) { + var_i0 = 13416u; + instance->w2c_g32 = var_i0; + var_i0 = 13416u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13420u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13424u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13428u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13432u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13436u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13440u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13444u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13448u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f355(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6032u); + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f356(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0; + v128 var_l15 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j1, var_j2; + var_i0 = instance->w2c_g7; + var_l14 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13456u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + } + } else { + var_i0 = 0u; + } + } + var_l6 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l14; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i1 = var_l3; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l13 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l5; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 27u; + var_i1 = 4u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 36u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = 42u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l3; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B10; + } + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 41u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_L9;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l0 = var_i0; + var_B10:; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 125u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l0 = var_i0; + } + } + var_i0 = var_l2; + var_i1 = var_l13; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 10538u; + var_i1 = 125u; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l5; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l2; + w2c_highlights_f63(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L15: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 39u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 39u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B16;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 39u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B16;} + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L15; + var_B16:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 47u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f45(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 37u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 38u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l10; + var_i0 = !(var_i0); + var_i1 = 4294967295u; + var_i2 = 3408u; + var_i3 = var_l2; + var_i4 = var_l3; + var_i3 = w2c_highlights_f77(instance, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i3; + var_i4 = 3408u; + var_i3 += var_i4; + var_i4 = 23808u; + var_i5 = 63u; + var_i6 = 153u; + var_i2 = w2c_highlights_f76(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l13 = var_i2; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 >= (s32)var_i3); + if (var_i2) { + var_i2 = var_l13; + goto var_B20; + } + var_i2 = 60u; + var_i3 = 3408u; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 1970496882u; + var_i3 = var_i3 == var_i4; + var_i4 = 3412u; + var_i4 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 29804u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i4 = var_l5; + var_i5 = 6u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + if (var_i3) {goto var_B20;} + var_i2 = 4294967295u; + var_B20:; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l5 = var_i1; + var_i2 = 4096u; + var_i1 &= var_i2; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i2 = 0u; + var_i1 = (u32)((s32)var_i1 >= (s32)var_i2); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 4294967295u; + var_l5 = var_i0; + } + var_i0 = var_l5; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l5; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l5; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 15u; + var_i0 &= var_i1; + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_l4 = var_i0; + } + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = var_l3; + var_i1 = var_l2; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_i1 = 3408u; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 26223u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 8u; + var_i0 = var_i0 == var_i1; + var_i1 = 3408u; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8751745755891331696ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l11 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + } + var_i0 = var_l5; + var_i1 = 4096u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l1; + var_i2 = 17u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + } else { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l0; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 23u; + } else { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + var_i0 = 15u; + } + } else { + var_i0 = var_l8; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = var_l6; + var_i1 = var_l7; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 59u; + } else { + var_i0 = var_l11; + if (var_i0) { + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 29u; + } else { + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = var_l2; + var_i1 = var_l3; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l3; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 2u; + var_i2 = var_i2 < var_i3; + if (var_i2) { + var_i2 = 0u; + } else { + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 6032u); + var_i3 = 1u; + var_i2 &= var_i3; + var_i3 = var_l2; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 1u); + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i2 &= var_i3; + } + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + } + } + } + } + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4496u); + var_i1 = 128u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 1u; + var_i0 += var_i1; + var_l6 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = var_l6; + var_l7 = var_i0; + } + var_i0 = var_l4; + var_i1 = 0u; + var_i2 = var_l4; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 0u; + var_i2 = var_l6; + var_i3 = var_l7; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l6; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l6; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i0 = !(var_i0); + var_l1 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l8 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f355(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L49: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f355(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B50;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B50;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L49; + var_B50:; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l8; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 61u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 13456u; + instance->w2c_g32 = var_i0; + var_i0 = 13456u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13460u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13464u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13468u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13472u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13476u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13480u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13484u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f357(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0, var_l6 = 0; + v128 var_l7 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = var_p2; + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + } + var_i0 = var_p1; + var_i1 = var_l4; + var_i0 += var_i1; + var_l6 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l4; + var_i2 = var_p0; + var_i3 = var_p1; + var_i1 = w2c_highlights_f237(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = var_p2; + var_i0 = w2c_highlights_f66(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = var_p3; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_p3; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L0; + } + var_i0 = var_p3; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p2; + var_i3 = 12u; + var_i2 &= var_i3; + var_i3 = var_p2; + var_i4 = 1u; + var_i3 &= var_i4; + var_i4 = 1u; + var_i3 <<= (var_i4 & 31); + var_i2 |= var_i3; + var_i3 = var_p3; + w2c_highlights_f67(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f358(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6032u); + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f359(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0, var_l18 = 0, var_l19 = 0, var_l20 = 0, var_l21 = 0, var_l22 = 0, var_l23 = 0; + v128 var_l24 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j1, var_j2, var_j3; + var_i0 = instance->w2c_g7; + var_l23 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l22 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l18 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62344u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62348u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62352u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62356u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l19 = var_i0; + var_i0 = 62360u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l16 = var_i0; + var_i0 = 62364u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l20 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l5 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13488u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l22 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l18 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 36u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 40u); + var_l15 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 44u); + var_l14 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 48u); + var_l19 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 52u); + var_l16 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 56u); + var_l20 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + } else { + var_i0 = 1u; + } + } + var_l17 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l23; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l22; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l17; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l18; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62344u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62348u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62352u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62356u; + var_i1 = var_l19; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62360u; + var_i1 = var_l16; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62364u; + var_i1 = var_l20; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = var_l20; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B4; + } + var_i0 = var_l14; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_l0 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l19; + var_i1 = var_l14; + var_i2 = var_l16; + var_i3 = 44u; + w2c_highlights_f357(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l14 = var_i0; + var_i0 = 1u; + var_l17 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + } + var_i0 = var_l18; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + goto var_B4; + } + var_i0 = var_l6; + var_i1 = instance->w2c_g4; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 46u; + var_i1 = 44u; + var_i2 = var_l11; + var_i3 = 2u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_L12: + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_i0 = var_i0 > var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i2 = var_l8; + var_i3 = var_l3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = 36u; + var_i3 = var_l8; + var_i4 = var_l11; + var_i5 = 1u; + var_i4 &= var_i5; + var_l1 = var_i4; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = 64u; + var_i4 = var_l8; + var_i5 = var_l1; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_l8; + var_i3 = var_l11; + var_i4 = 1u; + var_i3 &= var_i4; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + } + var_i0 = var_l1; + var_i1 = var_l2; + var_i2 = var_l1; + var_i3 = var_l2; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i1 = var_l8; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l10; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 -= var_i1; + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L12; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + goto var_B13; + } + var_i0 = var_l3; + var_i1 = var_l6; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 += var_i1; + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L12; + } + var_i0 = var_l6; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L12; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l7; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_l7 = var_i1; + var_i2 = var_l6; + var_i3 = 36u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 125u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } else { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 58u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L12; + var_B13:; + var_i0 = var_l4; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + var_i1 = var_l10; + var_i2 = 1u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l15; + if (var_i0) { + var_i0 = 0u; + var_l15 = var_i0; + var_i0 = var_l3; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = var_l6; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = w2c_highlights_f272(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i1 = var_l3; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l18 = var_i0; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 46u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + } + } else { + var_i0 = var_l6; + } + } else { + var_i0 = var_l11; + var_i1 = 2u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 46u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l18 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + } + var_l6 = var_i0; + } + goto var_L3; + } + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l14 = var_i0; + var_i0 = 1u; + var_l17 = var_i0; + } + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l17; + var_l1 = var_i0; + var_i0 = 0u; + var_l17 = var_i0; + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = var_l0; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l9; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12416u; + var_i1 = 1953850173u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12416u; + var_i1 = 4u; + var_i2 = 8u; + var_i3 = 5u; + w2c_highlights_f357(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l17 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = var_l0; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 26844869763096415ull; + var_j1 ^= var_j2; + var_j2 = 8ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i2 = var_l4; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 6872283386518724447ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + var_i2 = var_l4; + var_i3 = 8u; + var_i4 = 7u; + var_i5 = var_l2; + var_i6 = 68u; + var_i5 = var_i5 == var_i6; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f47(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l20 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l9; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_l16 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l16; + var_i2 = var_l2; + var_i3 = 126u; + var_i2 = var_i2 == var_i3; + var_l16 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l21 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l21; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l21; + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i1 = !(var_i1); + var_i2 = var_l4; + var_i3 = var_l7; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i2 = var_l7; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 48u; + var_i2 -= var_i3; + var_i3 = 9u; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l2; + var_i1 = w2c_highlights_f65(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i1 = 0u; + } + var_i2 = var_l5; + var_i3 = var_l16; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l21; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l21; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l19 = var_i0; + var_i1 = var_l21; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l19; + var_i0 -= var_i1; + var_l14 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } else { + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_l19 = var_i1; + var_i0 -= var_i1; + var_l14 = var_i0; + } + var_i0 = 44u; + var_l0 = var_i0; + goto var_B34; + } + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l0; + var_l8 = var_i0; + var_i1 = 39u; + var_i0 = var_i0 != var_i1; + var_l11 = var_i0; + var_i0 = 0u; + var_l15 = var_i0; + goto var_B40; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_l8 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 3u; + var_l11 = var_i0; + var_i0 = 0u; + var_l15 = var_i0; + goto var_B40; + } + var_i0 = var_l0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_l2 = var_i0; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 37u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l7 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l7; + var_i2 = var_l9; + var_i3 = 35u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = var_l2; + var_i2 = w2c_highlights_f44(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l2; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l2; + var_i3 = w2c_highlights_f43(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = !(var_i3); + var_i4 = var_l2; + var_i5 = 0u; + var_i4 = var_i4 != var_i5; + var_i5 = var_l9; + var_i6 = 35u; + var_i5 = var_i5 != var_i6; + var_i4 &= var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l7; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L46: + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L46; + } + } else { + var_i0 = var_l2; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 125u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 14u; + var_i1 = 58u; + var_i2 = 60u; + var_i3 = var_l2; + var_i3 = w2c_highlights_f46(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + goto var_B34; + } + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l13; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = var_l4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65535u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l2; + var_i1 = var_l4; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = 255u; + var_i1 &= var_i2; + var_l1 = var_i1; + var_i2 = 113u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B52;} + var_i0 = 3u; + var_i1 = var_l1; + var_i2 = 109u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B52;} + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = 115u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 121u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B52;} + var_i0 = 0u; + goto var_B52; + } + var_i0 = var_l9; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l1; + var_i2 = 30577u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B52;} + var_i0 = 2u; + var_i1 = var_l1; + var_i2 = 29041u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B52;} + var_i0 = 3u; + var_i1 = var_l1; + var_i2 = 29297u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B52;} + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = 29300u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B52;} + } + var_i0 = 0u; + var_B52:; + } + var_l1 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 128u; + var_i0 = var_i0 < var_i1; + var_i1 = var_l3; + var_i2 = 32u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i1 = w2c_highlights_f47(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i3 = 44u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i4 = 59u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = var_l3; + var_i4 = 35u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = var_l2; + var_i4 = var_i4 > var_i5; + var_i3 &= var_i4; + var_i4 = var_l3; + var_i5 = 61u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l3; + var_i6 = 41u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l3; + var_i1 = 0u; + var_i2 = var_l3; + var_i3 = var_l3; + var_i3 = w2c_highlights_f272(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i3; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = 3u; + var_i1 = 1u; + var_i2 = var_l1; + var_i3 = 3u; + var_i2 = var_i2 >= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = var_l1; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_l15 = var_i0; + goto var_B40; + } + } + var_i0 = var_l13; + if (var_i0) { + var_i0 = 4294967295u; + } else { + var_i0 = var_l4; + var_i1 = var_l2; + var_i2 = 24384u; + var_i3 = 31u; + var_i4 = 73u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 21u; + var_i1 = var_l2; + var_i2 = var_l4; + var_i1 -= var_i2; + var_l1 = var_i1; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 120u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 14u; + var_i1 = var_l1; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 439787744885ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 60u; + var_i1 = var_l4; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 24415u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 2u; + var_i2 -= var_i3; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 24415u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 5u; + var_i2 = var_i2 >= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 4294967295u; + goto var_B58; + } + var_i0 = 18u; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 275u; + var_i1 = var_l1; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 531u; + var_i1 = var_l1; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 19u; + var_i1 = var_l1; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 20u; + var_i1 = var_l1; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 21u; + var_i1 = var_l1; + var_i2 = 6u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 17u; + var_i1 = var_l1; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B58;} + var_i0 = 14u; + var_B58:; + } + var_l1 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l1; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l12 = var_i0; + var_i0 = var_l1; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 60u; + var_i0 = var_i0 != var_i1; + var_l5 = var_i0; + } else { + var_i0 = var_l12; + if (var_i0) { + var_i0 = 15u; + var_i1 = 23u; + var_i2 = var_l12; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_i1 = var_l12; + var_i2 = var_l2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l12 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + } else { + var_i0 = var_l13; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 23u; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 14u; + } else { + var_i0 = var_l4; + var_i1 = var_l2; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 6u; + } else { + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = var_l4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 23u; + var_i1 = 55u; + var_i2 = var_l13; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 48u; + var_i1 = 14u; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 62u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l0; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 125u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_i5 = 1u; + var_i4 -= var_i5; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 123u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + } + var_l0 = var_i0; + } + } + goto var_B32; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l9; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_l0 = var_i0; + goto var_B34; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l5 = var_i0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 32u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 35u; + var_l0 = var_i0; + goto var_B33; + } + var_i0 = var_l0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l9; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_l2 = var_i1; + var_i2 = var_l9; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l13 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_l0 = var_i0; + goto var_B33; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f358(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L73: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f358(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B74;} + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 = var_i0 > var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = var_l4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B74;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L73; + var_B74:; + var_i0 = 25u; + var_l0 = var_i0; + goto var_B33; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + goto var_B33; + var_B40:; + var_i0 = 46u; + var_i1 = 44u; + var_i2 = var_l11; + var_i3 = 2u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 1u; + var_l18 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + goto var_B32; + var_B34:; + var_i0 = 0u; + var_l5 = var_i0; + goto var_B32; + var_B33:; + var_i0 = 1u; + var_l5 = var_i0; + var_B32:; + var_i0 = var_l0; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l13 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l22; + if (var_i0) { + var_i0 = 13488u; + instance->w2c_g32 = var_i0; + var_i0 = 13488u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13492u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13496u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13500u; + var_i1 = var_l17; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13504u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13508u; + var_i1 = var_l18; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13512u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13516u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13520u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13524u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13528u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13532u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13536u; + var_i1 = var_l19; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13540u; + var_i1 = var_l16; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13544u; + var_i1 = var_l20; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f360(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = var_p0; + var_i1 = 60u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = 0u; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 3u; + var_i2 += var_i3; + var_i1 = var_i1 < var_i2; + if (var_i1) {goto var_B2;} + var_i0 = 0u; + var_i1 = var_p0; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 16188u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B2;} + var_i0 = 1u; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u); + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B2;} + var_i0 = 0u; + var_i1 = var_p0; + var_i2 = 5u; + var_i1 += var_i2; + var_l1 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B2;} + var_i0 = 0u; + var_i1 = var_p0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u); + var_i2 = 2105376u; + var_i1 |= var_i2; + var_i2 = 7366768u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + var_i1 = !(var_i1); + if (var_i1) {goto var_B2;} + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 5u); + var_i1 = w2c_highlights_f43(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 |= var_i1; + var_B2:; + if (var_i0) { + var_i0 = var_p0; + goto var_Bfunc; + } else { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + UNREACHABLE; + var_B1:; + var_i0 = instance->w2c_g3; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f361(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + u64 var_l8 = 0; + v128 var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + u64 var_j1, var_j2, var_j3; + var_i0 = var_p0; + var_l3 = var_i0; + var_L1: + var_i0 = instance->w2c_g3; + var_i1 = var_l3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = w2c_highlights_f196(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_l5 = var_i0; + var_i0 = var_p1; + var_l4 = var_i0; + var_i0 = 0u; + var_i1 = instance->w2c_g3; + var_i2 = var_p2; + var_l7 = var_i2; + var_i3 = var_l5; + var_i2 += var_i3; + var_i1 = var_i1 < var_i2; + if (var_i1) {goto var_B3;} + var_i0 = 1u; + var_i1 = var_p2; + var_i1 = !(var_i1); + if (var_i1) {goto var_B3;} + var_L4: + var_i0 = var_l7; + var_i1 = 8u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + var_j1 = 18446744073709551615ull; + var_i2 = 8u; + var_i3 = var_l7; + var_i2 -= var_i3; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_j2 = (u64)(var_i2); + var_j1 >>= (var_j2 & 63); + var_l8 = var_j1; + var_i2 = var_l5; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j1 &= var_j2; + var_i2 = var_l4; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = var_l8; + var_j2 &= var_j3; + var_i1 = var_j1 != var_j2; + if (var_i1) {goto var_B3;} + goto var_B5; + } + var_i0 = 0u; + var_i1 = var_l5; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_l4; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i1 = var_j1 != var_j2; + if (var_i1) {goto var_B3;} + var_i0 = var_l5; + var_i1 = 8u; + var_i0 += var_i1; + var_l5 = var_i0; + var_i0 = var_l4; + var_i1 = 8u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = var_l7; + var_i1 = 8u; + var_i0 -= var_i1; + var_l7 = var_i0; + if (var_i0) {goto var_L4;} + var_B5:; + var_i0 = 1u; + var_B3:; + if (var_i0) { + var_i0 = var_p2; + var_i1 = var_l6; + var_i0 += var_i1; + var_l4 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + var_i1 = var_l4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f47(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i0 |= var_i1; + if (var_i0) {goto var_B0;} + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + goto var_L1; + } + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g22; + var_i1 = var_p2; + var_i2 = 32u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 12416u; + var_i1 = var_p1; + var_i2 = var_p2; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 14u; + instance->w2c_g25 = var_i0; + var_i0 = var_p2; + instance->w2c_g26 = var_i0; + } + var_i0 = 0u; + goto var_Bfunc; + var_B0:; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = var_l3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = var_l6; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 44u; + var_i1 = var_l6; + var_i2 = var_p2; + var_i3 = var_l6; + var_i2 += var_i3; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f362(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 39u; + var_i3 = 1u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + goto var_B1; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_l2 = var_i0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 92u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_p0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L0; + var_B1:; + var_i0 = 44u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g22; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g2; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 15u; + instance->w2c_g25 = var_i0; + } + var_i0 = var_l1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f363(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, + var_l9 = 0; + u64 var_l10 = 0; + v128 var_l11 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7, + var_i8; + u64 var_j1, var_j2, var_j3, var_j4; + v128 var_o1, var_o2, var_o3; + var_i0 = var_p0; + if (var_i0) { + var_i0 = instance->w2c_g82; + var_l5 = var_i0; + var_i0 = instance->w2c_g81; + var_l3 = var_i0; + } + var_L1: + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l7 = var_i1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B2;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_p0 = var_i0; + var_i1 = var_l7; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l7; + var_i3 = 91u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_p0; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 10u; + var_i2 = 13u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + instance->w2c_g3 = var_i1; + var_L5: + var_i1 = instance->w2c_g4; + var_i2 = 63u; + var_i1 = w2c_highlights_f79(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i1; + var_i2 = var_p0; + var_i1 = var_i1 < var_i2; + if (var_i1) { + var_i1 = var_l4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = 1u; + var_i2 += var_i3; + var_i3 = var_p0; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l4; + } else { + var_i1 = var_l4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + goto var_L5; + } + } else { + var_i1 = var_p0; + } + var_p0 = var_i1; + instance->w2c_g3 = var_i0; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L1; + } + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L1; + } + var_i0 = var_l1; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u); + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 2u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l8 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f196(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = 0u; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B10;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + } else { + var_i0 = 0u; + var_l6 = var_i0; + } + var_i0 = 0u; + var_i1 = var_p0; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B10;} + var_i0 = 0u; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l4 = var_i1; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i2 = var_l4; + var_i3 = 36u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B10;} + var_i0 = var_p0; + var_l4 = var_i0; + var_L12: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_i1 = var_l9; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L12; + var_B13:; + var_i0 = var_p0; + var_i1 = var_l4; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_l6; + var_i1 = var_i1 != var_i2; + var_i2 = var_p0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B10;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + } + var_i0 = 0u; + var_i1 = var_p0; + var_i1 = w2c_highlights_f196(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 10u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l6; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 13u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = var_l6; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B10;} + var_i0 = 25u; + var_i1 = var_l8; + var_i2 = var_l8; + var_i3 = 3u; + var_i2 += var_i3; + var_l8 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 44u; + var_i1 = var_l8; + var_i2 = var_p0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = var_l6; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_i1 = var_l6; + var_i1 = w2c_highlights_f205(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i1; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i1 = var_l4; + var_i2 = var_l9; + var_i0 = w2c_highlights_f361(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_B10:; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L1; + } + } + var_i0 = var_l1; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_p0 = var_i0; + var_i1 = var_l1; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i0 = w2c_highlights_f362(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L1; + } + var_i0 = var_l1; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L1; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l7; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L1; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + var_i1 -= var_i2; + var_p0 = var_i1; + var_i2 = 2u; + var_i1 -= var_i2; + var_i2 = 10u; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B21;} + var_i0 = var_p0; + var_i1 = 2u; + var_i0 -= var_i1; + switch (var_i0) { + case 0: goto var_B25; + case 1: goto var_B24; + case 2: goto var_B23; + default: goto var_B22; + } + var_B25:; + var_i0 = 18u; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 2314885530818453536ull; + var_j1 |= var_j2; + var_j2 = 65535ull; + var_j1 &= var_j2; + var_l10 = var_j1; + var_j2 = 26217ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l10; + var_j3 = 28516ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 17u; + var_j1 = var_l10; + var_j2 = 29537ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l10; + var_j3 = 28262ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 58u; + goto var_B21; + var_B24:; + var_i0 = 17u; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 2314885530818453536ull; + var_j1 |= var_j2; + var_j2 = 16777215ull; + var_j1 &= var_j2; + var_l10 = var_j1; + var_j2 = 6648693ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l10; + var_j3 = 7496054ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + var_j2 = var_l10; + var_j3 = 7824750ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 18u; + var_j1 = var_l10; + var_j2 = 7499622ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l10; + var_j3 = 7959156ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 56u; + var_j1 = var_l10; + var_j2 = 7630441ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B21;} + var_i0 = 58u; + goto var_B21; + var_B23:; + var_i0 = 3u; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 2314885530818453536ull; + var_j1 |= var_j2; + var_j2 = 4294967295ull; + var_j1 &= var_j2; + var_l10 = var_j1; + var_j2 = 1702195828ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B21;} + var_i0 = 7u; + var_j1 = var_l10; + var_j2 = 1819047278ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B21;} + var_i0 = 18u; + var_j1 = var_l10; + var_j2 = 1702063205ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l10; + var_j3 = 1702060387ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + var_j2 = var_l10; + var_j3 = 1869112165ull; + var_i2 = var_j2 == var_j3; + var_j3 = var_l10; + var_j4 = 1869901671ull; + var_i3 = var_j3 == var_j4; + var_i2 |= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 19u; + var_j1 = var_l10; + var_j2 = 1836412517ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B21;} + var_i0 = 56u; + var_j1 = var_l10; + var_j2 = 1819242338ull; + var_i1 = var_j1 == var_j2; + var_j2 = var_l10; + var_j3 = 1684631414ull; + var_i2 = var_j2 == var_j3; + var_i1 |= var_i2; + if (var_i1) {goto var_B21;} + var_i0 = 58u; + goto var_B21; + var_B22:; + var_i0 = 3408u; + var_i1 = var_l2; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l11 = var_o1; + var_o2 = var_l11; + var_i3 = 65u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_sub(var_o2, var_o3); + var_i3 = 25u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_u8x16_le(var_o2, var_o3); + var_i3 = 32u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_v128_and(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + v128_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_o1); + var_i0 = 58u; + var_i1 = 3408u; + var_i2 = var_p0; + var_i3 = 3408u; + var_i2 += var_i3; + var_i3 = 24640u; + var_i4 = 15u; + var_i5 = 51u; + var_i1 = w2c_highlights_f76(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i1; + var_i2 = var_p0; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 < (s32)var_i3); + var_i0 = var_i2 ? var_i0 : var_i1; + var_B21:; + var_p0 = var_i0; + var_i0 = var_l3; + if (var_i0) { + var_i0 = 15u; + var_i1 = 57u; + var_i2 = var_l3; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l3; + var_i4 = 3u; + var_i3 = var_i3 < var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l3; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 23u; + var_p0 = var_i0; + } else { + var_i0 = 0u; + var_l3 = var_i0; + } + } else { + var_i0 = var_l5; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_p0; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + var_i1 = 29u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = var_p0; + var_i2 = var_l2; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + } + var_i0 = 0u; + var_l5 = var_i0; + } else { + var_i0 = var_p0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 59u; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f73(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = 14u; + } else { + var_i1 = var_l1; + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + if (var_i1) { + var_i1 = 55u; + var_i2 = instance->w2c_g4; + var_p0 = var_i2; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 14906u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g3; + var_i4 = var_p0; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + if (var_i2) {goto var_B33;} + var_i1 = 58u; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i3 = 97u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + if (var_i2) {goto var_B33;} + var_i1 = 6u; + var_i2 = var_l2; + var_i3 = var_p0; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i2) {goto var_B33;} + var_i1 = 58u; + var_B33:; + } else { + var_i1 = var_p0; + } + } + var_i2 = instance->w2c_g39; + var_i3 = var_l4; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_i5 = instance->w2c_g3; + var_i4 = var_i4 < var_i5; + var_i3 &= var_i4; + var_i4 = var_l4; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 1u); + var_i5 = 0u; + var_i6 = instance->w2c_g3; + var_i7 = var_l4; + var_i8 = 1u; + var_i7 += var_i8; + var_i6 = var_i6 > var_i7; + var_i4 = var_i6 ? var_i4 : var_i5; + var_i5 = 58u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + } else { + var_i0 = var_p0; + var_i1 = 19u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 2u; + var_i2 = instance->w2c_g4; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 8u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 2314885530818453536ull; + var_j3 |= var_j4; + var_j4 = 7957695015192261990ull; + var_i3 = var_j3 == var_j4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 3u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 2105376u; + var_i3 |= var_i4; + var_i4 = 7824750u; + var_i3 ^= var_i4; + var_i4 = 8u; + var_i3 <<= (var_i4 & 31); + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l3 = var_i0; + } + } + } + var_i0 = var_p0; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L1; + } + var_i0 = var_l1; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_p0 = var_i1; + var_i2 = var_l7; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_p0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L1; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + instance->w2c_g39 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_p0 = var_i0; + var_i1 = var_l1; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_p0; + instance->w2c_g39 = var_i0; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_i1 = 25u; + var_i2 = var_l1; + var_i3 = 35u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l7; + var_i4 = 91u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = var_l3; + var_i3 = 0u; + var_i4 = var_l1; + var_i5 = 38u; + var_i4 = var_i4 != var_i5; + var_i5 = var_l1; + var_i6 = 92u; + var_i5 = var_i5 != var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l3 = var_i0; + } + goto var_L1; + var_B2:; + var_i0 = instance->w2c_g22; + if (var_i0) { + var_i0 = var_l3; + instance->w2c_g81 = var_i0; + var_i0 = var_l5; + instance->w2c_g82 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f364(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13552u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + instance->w2c_g24 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f360(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g80; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f118(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B1; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L4: + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B5;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L4; + var_B5:; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B1; + } + var_i0 = 0u; + var_i1 = instance->w2c_g3; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B7;} + var_i0 = 0u; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 60u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B7;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_l0 = var_i0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_B7:; + if (var_i0) { + var_i0 = 2u; + instance->w2c_g80 = var_i0; + w2c_highlights_f118(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B1; + } + var_i0 = 1u; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_i1 = var_l1; + instance->w2c_g3 = var_i1; + w2c_highlights_f118(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_L11: + var_i0 = var_l0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 5u; + var_i3 = instance->w2c_g4; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 2u); + var_i4 = 61u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 27u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = 0u; + w2c_highlights_f363(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 15935u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 27u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + instance->w2c_g80 = var_i0; + } else { + var_i0 = 1u; + instance->w2c_g80 = var_i0; + goto var_B10; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f360(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = instance->w2c_g4; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_i1 = var_l1; + instance->w2c_g3 = var_i1; + w2c_highlights_f118(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L11;} + var_B10:; + var_B1:; + var_i0 = var_l3; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f365(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = 3408u; + var_i1 = var_p0; + var_i2 = var_p1; + var_i1 = w2c_highlights_f77(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 3408u; + var_i1 += var_i2; + var_i2 = 24896u; + var_i3 = 31u; + var_i4 = 101u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f366(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) {goto var_B1;} + var_i0 = var_l1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f367(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6032u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f368(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0; + v128 var_l14 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l5 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13552u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + } else { + var_i0 = 0u; + } + } + var_l9 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l9; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + goto var_B4; + } + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 34u; + var_i1 = 39u; + var_i2 = var_l9; + var_i3 = 1u; + var_i2 &= var_i3; + var_l7 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_L9: + var_i0 = var_l7; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i2 = 96u; + var_i3 = 36u; + var_i0 = w2c_highlights_f8(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l1 = var_i0; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B10; + } + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = var_l3; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 3u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l2 = var_i1; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 13u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = instance->w2c_g0; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + goto var_B10; + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 45u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L9; + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + goto var_B10; + } + var_i0 = var_l2; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 45u; + var_i1 = var_l1; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 += var_i3; + var_l2 = var_i2; + var_i3 = instance->w2c_g3; + var_i2 = w2c_highlights_f9(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i2; + var_i3 = 1u; + var_i2 += var_i3; + var_i3 = var_l0; + var_i4 = var_l1; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 1u); + var_i5 = 13u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l0; + var_i5 = w2c_highlights_f83(instance, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i6 = 10u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i5 = var_l0; + var_i6 = var_l2; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + goto var_B8; + } + var_i0 = var_l2; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i2 = 125u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + } + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_l0 = var_i0; + goto var_L9; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f366(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l1; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_l0 = var_i0; + goto var_L9; + } + var_i0 = var_l2; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l2; + var_i2 = 94u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 60u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L9; + var_B10:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_B8:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_l11 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l9; + } + } + var_l9 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l10; + var_l2 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = var_l1; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_L28: + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B29;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L28; + } + var_l2 = var_i0; + var_B29:; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 15907u; + var_i1 = 2u; + var_i2 = 4u; + w2c_highlights_f63(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_i1 = 2u; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 44u; + goto var_B33; + } + var_i0 = var_l3; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l3; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 3u; + var_i1 = 4u; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 44u; + goto var_B33; + } + var_i0 = var_l1; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 40u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f366(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 58u; + var_l0 = var_i0; + goto var_B32; + } + } + var_i0 = var_l1; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l3; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l8; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l8; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = 1u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l3; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i2 = 125u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 58u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = var_l3; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 94u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 60u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f366(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 60u; + var_i1 = 7u; + var_i2 = 3u; + var_i3 = 58u; + var_i4 = var_l4; + var_i5 = 1u; + var_i4 += var_i5; + var_i5 = instance->w2c_g4; + var_i4 = w2c_highlights_f365(instance, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i4; + var_i5 = 7u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l0; + var_i4 = 8u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i3 = 95u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g4; + var_i4 = var_l4; + var_i3 -= var_i4; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l0; + var_i4 = 9u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = 46u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 55u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 32u; + var_i1 |= var_i2; + var_l0 = var_i1; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 95u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f365(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = 21u; + var_i1 = 59u; + var_i2 = instance->w2c_g4; + var_i3 = var_l4; + var_i2 -= var_i3; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 102u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l5; + var_i4 = 6u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_B32; + } + var_i0 = var_l1; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = var_l3; + var_i1 = 13u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 45u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_l0 = var_i0; + var_L51: + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 32u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l3; + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L51; + } + var_i0 = 29u; + var_i1 = var_l3; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B33;} + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l2; + var_i3 = 3u; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l4; + var_i1 = var_l1; + var_i2 = 45u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 15u; + var_i1 = 14u; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l6; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l1; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + if (var_i0) { + var_i0 = 3u; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 18u; + var_i1 = 0u; + var_i2 = var_l4; + var_i3 = var_l1; + var_i2 = w2c_highlights_f365(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l2; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l10 = var_i0; + var_i0 = 19u; + var_l0 = var_i0; + } + var_i0 = 21u; + var_i1 = 20u; + var_i2 = 19u; + var_i3 = var_l2; + var_i4 = 3u; + var_i3 = var_i3 == var_i4; + if (var_i3) { + var_i3 = 2u; + var_l10 = var_i3; + var_i3 = 19u; + } else { + var_i3 = var_l0; + } + var_i4 = var_l2; + var_i5 = 4u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l2; + var_i4 = 5u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = var_l4; + var_i3 -= var_i4; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = !(var_i0); + var_i1 = var_l5; + var_i2 = var_l1; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = var_l0; + } + } + } + } + goto var_B33; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + goto var_B33; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l8; + if (var_i0) { + var_i0 = var_l8; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l8; + var_i2 = var_l1; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l1; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l8; + var_i1 = 1u; + var_i0 -= var_i1; + var_l8 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l11; + var_l9 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l0; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l6 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + } + var_l6 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f367(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L69: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f367(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L69; + } + var_i0 = 25u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l1; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_i1 = 0u; + var_i2 = var_l1; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_i4 = 3u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l10 = var_i0; + var_i0 = 0u; + var_B33:; + var_l0 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_B32:; + var_i0 = var_l0; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B4:; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 13552u; + instance->w2c_g32 = var_i0; + var_i0 = 13552u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13556u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13560u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13564u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13568u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13572u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13576u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f369(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + u64 var_l8 = 0; + v128 var_l9 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j2, var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l7 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13584u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l1 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l0; + var_i2 = var_l3; + var_i1 -= var_i2; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = var_l0; + var_i4 = 25248u; + var_i5 = 15u; + var_i6 = 39u; + var_i2 = w2c_highlights_f76(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i2; + var_i3 = 0u; + var_i2 = (u32)((s32)var_i2 < (s32)var_i3); + var_i1 &= var_i2; + if (var_i1) { + var_i1 = 17u; + var_i2 = var_l3; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l8 = var_j2; + var_j3 = 7234314173708068210ull; + var_i2 = var_j2 == var_j3; + var_j3 = var_l8; + var_j4 = 7234318610140980594ull; + var_i3 = var_j3 == var_j4; + var_i2 |= var_i3; + if (var_i2) {goto var_B10;} + } + var_i1 = var_l5; + var_B10:; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l5; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l5; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l2 = var_i0; + } else { + var_i0 = var_l2; + if (var_i0) { + var_i0 = 55u; + var_i1 = 15u; + var_i2 = 23u; + var_i3 = var_l2; + var_i4 = 2u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = var_l2; + var_i3 = 3u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l4; + var_i4 = 46u; + var_i3 = var_i3 != var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = var_l0; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = var_l4; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = 55u; + var_i1 = 23u; + var_i2 = 58u; + var_i3 = var_l1; + var_i4 = var_l4; + var_i5 = 46u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + var_l1 = var_i0; + } + } + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 43u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6032u); + var_i1 = 16u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + } else { + var_i0 = var_l0; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } + } + var_l1 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 13584u; + instance->w2c_g32 = var_i0; + var_i0 = 13584u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13588u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f370(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6032u); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f371(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0; + v128 var_l15 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j0, var_j1; + var_i0 = instance->w2c_g7; + var_l12 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13592u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l11 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + } + } else { + var_i0 = 0u; + } + } + var_l8 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l12; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = var_l8; + var_l2 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l7; + var_i4 = 39u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 96u; + var_i1 = 0u; + var_i2 = 58u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l7; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 91u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 114u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_l13 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l14 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_l10 = var_i0; + var_L11: + var_i0 = var_l10; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 += var_i1; + var_l10 = var_i0; + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_l9 = var_i0; + goto var_L11; + } + var_i0 = 0u; + var_i1 = var_l9; + var_i2 = 30u; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B10;} + var_i0 = var_l10; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 41u; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 93u; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 125u; + var_l3 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 93u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l3; + var_i3 = 125u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + if (var_i1) {goto var_B10;} + var_i0 = 12416u; + var_i1 = var_l3; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12417u; + var_i1 = 45u; + var_i2 = var_l9; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l9; + var_i1 = 12417u; + var_i0 += var_i1; + var_i1 = var_l14; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l10; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l13; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + var_i1 = 2u; + var_i0 += var_i1; + var_l3 = var_i0; + instance->w2c_g26 = var_i0; + var_i0 = 44u; + instance->w2c_g29 = var_i0; + var_i0 = w2c_highlights_f69(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 12416u; + var_i1 = var_l3; + var_i2 = 44u; + w2c_highlights_f62(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 0u; + instance->w2c_g26 = var_i0; + var_i0 = 0u; + instance->w2c_g29 = var_i0; + } + var_i0 = 1u; + var_B10:; + if (var_i0) { + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + } + var_i0 = var_l0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i2 = 37u; + var_i3 = 0u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + } + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 19u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 46u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 60u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l7; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l7; + var_i3 = 36u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 46u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = 0u; + var_i1 = var_l6; + var_i2 = var_l0; + var_i3 = 25696u; + var_i4 = 7u; + var_i5 = 20u; + var_i1 = w2c_highlights_f75(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + if (var_i0) { + var_i0 = 18u; + var_l1 = var_i0; + var_i0 = var_l2; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 19u; + var_l1 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + } + var_i0 = 21u; + var_i1 = 7u; + var_i2 = 3u; + var_i3 = var_l1; + var_i4 = var_l2; + var_i5 = 3u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l2; + var_i4 = 4u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 23u; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 45u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B27;} + } else { + var_i0 = 0u; + var_i1 = var_l2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B27;} + } + var_i0 = 1u; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f73(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 92u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B27;} + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = 8u; + var_i1 += var_i2; + var_l1 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B27;} + var_i0 = var_l2; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 7957695015192261990ull; + var_i0 = var_j0 == var_j1; + var_i1 = var_l1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f47(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + var_B27:; + if (var_i0) { + var_i0 = 15u; + } else { + var_i0 = var_l3; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = 59u; + var_i1 = 58u; + var_i2 = var_l4; + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 0u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i3 = var_l3; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 61u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l3; + var_i5 = 1u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 61u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i4 = var_l4; + var_i5 = 0u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + } + var_i1 = var_l6; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l7; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i1 = var_l5; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + } + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 0u; + var_i2 = var_l4; + var_i3 = var_l5; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l4; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l1 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f370(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L39: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f370(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L39; + } + var_i0 = 25u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l1 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l11; + if (var_i0) { + var_i0 = 13592u; + instance->w2c_g32 = var_i0; + var_i0 = 13592u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13596u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13600u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13604u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f372(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0, var_l18 = 0, var_l19 = 0, var_l20 = 0, var_l21 = 0, var_l22 = 0, var_l23 = 0, + var_l24 = 0, var_l25 = 0, var_l26 = 0, var_l27 = 0, var_l28 = 0; + v128 var_l29 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7; + u64 var_j1, var_j2, var_j3; + var_i0 = instance->w2c_g7; + var_l28 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l26 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l16 = var_i0; + var_i0 = 62340u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62344u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62348u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62352u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l21 = var_i0; + var_i0 = 62356u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l22 = var_i0; + var_i0 = 62360u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l23 = var_i0; + var_i0 = 62364u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l24 = var_i0; + var_i0 = 62368u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62372u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l17 = var_i0; + var_i0 = 62376u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l18 = var_i0; + var_i0 = 62380u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l25 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l14 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13608u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l26 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l13 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l14 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l16 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 36u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 40u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 44u); + var_l21 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 48u); + var_l22 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 52u); + var_l23 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 56u); + var_l24 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 60u); + var_l15 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 64u); + var_l17 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 68u); + var_l18 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 72u); + var_l25 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + } + } else { + var_i0 = 0u; + } + } + var_l11 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l28; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l26; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l16; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62340u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62344u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62348u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62352u; + var_i1 = var_l21; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62356u; + var_i1 = var_l22; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62360u; + var_i1 = var_l23; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62364u; + var_i1 = var_l24; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62368u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62372u; + var_i1 = var_l17; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62376u; + var_i1 = var_l18; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62380u; + var_i1 = var_l25; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l19 = var_i0; + var_i0 = var_l25; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_i1 = var_l19; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B4; + } + var_i0 = var_l15; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_l0 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l19; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l17; + var_i1 = var_l15; + var_i2 = var_l18; + var_i3 = 44u; + w2c_highlights_f357(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l15 = var_i0; + var_i0 = 1u; + var_l14 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + goto var_L3; + } + } + var_i0 = var_l16; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + goto var_B4; + } + var_i0 = var_l8; + var_i1 = instance->w2c_g4; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 46u; + var_i1 = 48u; + var_i2 = 44u; + var_i3 = var_l5; + var_i4 = 4u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l5; + var_i3 = 2u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_L13: + var_i0 = instance->w2c_g4; + var_i1 = var_l10; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 35u; + var_i2 = var_l11; + var_i3 = var_l5; + var_i4 = 1u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l6; + var_i3 = var_l11; + var_i4 = var_l6; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l4; + var_i2 = var_l11; + var_i3 = var_l5; + var_i4 = 1u; + var_i3 &= var_i4; + var_i4 = var_l5; + var_i5 = 3u; + var_i4 >>= (var_i5 & 31); + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l10 = var_i0; + } + var_i0 = var_l10; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B14;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = var_l11; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L13; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l5; + var_i1 = 2u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_l8 = var_i0; + goto var_B14; + } + var_i0 = var_l1; + var_i1 = var_l6; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L13; + } + var_i0 = var_l1; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B14;} + var_i0 = var_l1; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L13; + } + var_i0 = var_l12; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 -= var_i2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = 2u; + var_i0 |= var_i1; + goto var_B12; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L13; + } + UNREACHABLE; + var_B14:; + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l8; + var_i1 = var_l9; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_B12:; + var_l0 = var_i0; + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_l8 = var_i0; + var_i0 = var_l0; + var_i1 = 3u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l11; + var_l21 = var_i0; + var_i0 = var_l6; + var_l22 = var_i0; + var_i0 = var_l9; + var_l23 = var_i0; + var_i0 = var_l5; + var_l24 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + var_i0 = 0u; + var_l16 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 1u; + } else { + var_i0 = var_l5; + var_i1 = 8u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l16 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l3; + } + } + var_l3 = var_i0; + goto var_L3; + } + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l19; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l15 = var_i0; + var_i0 = 1u; + var_l14 = var_i0; + } + var_i0 = var_l19; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l27 = var_i0; + var_i0 = var_l14; + var_l10 = var_i0; + var_i0 = 0u; + var_l14 = var_i0; + var_i0 = var_l0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l10; + var_i1 = var_l0; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 6644285u; + var_i0 ^= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 6907749u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f3(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 4u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 12416u; + var_i1 = 1684956477u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 12416u; + var_i1 = 4u; + var_i2 = 4u; + var_i3 = 4u; + w2c_highlights_f357(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l14 = var_i0; + goto var_L3; + } + } + var_i0 = var_l10; + var_i1 = var_l0; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l4; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 26844869763096415ull; + var_j1 ^= var_j2; + var_j2 = 8ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i2 = var_l4; + var_i3 = 7u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f47(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l25 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l2; + var_i2 = var_l27; + var_i3 = 126u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l27; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_l18 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l20 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l20; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l20; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l18; + var_i1 &= var_i2; + var_i2 = var_l20; + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l10; + var_i1 = !(var_i1); + var_i2 = var_l4; + var_i3 = var_l19; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i2 = var_l19; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 48u; + var_i2 -= var_i3; + var_i3 = 9u; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l2; + var_i1 = w2c_highlights_f65(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i1 = 0u; + } + var_i2 = var_l3; + var_i3 = var_l18; + var_i2 |= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l20; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l20; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l17 = var_i0; + var_i1 = var_l20; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_l17; + var_i0 -= var_i1; + var_l15 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } else { + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_l17 = var_i1; + var_i0 -= var_i1; + var_l15 = var_i0; + } + var_i0 = 44u; + var_l0 = var_i0; + goto var_B33; + } + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 96u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l0; + var_l11 = var_i0; + var_i1 = 39u; + var_i0 = var_i0 != var_i1; + var_l5 = var_i0; + goto var_B39; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_l11 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 11u; + var_l5 = var_i0; + goto var_B39; + } + var_i0 = var_l0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = 1u; + var_i4 = var_l1; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 6032u); + var_i5 = 64u; + var_i4 &= var_i5; + if (var_i4) {goto var_B43;} + var_i3 = 2u; + var_i4 = var_l1; + var_i5 = 113u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l1; + var_i6 = 119u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i5 = var_l1; + var_i6 = 105u; + var_i5 = var_i5 == var_i6; + var_i6 = var_l1; + var_i7 = 115u; + var_i6 = var_i6 == var_i7; + var_i5 |= var_i6; + var_i4 |= var_i5; + if (var_i4) {goto var_B43;} + var_i3 = 0u; + var_B43:; + var_l2 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + var_l10 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_i1 = var_l6; + var_i2 = 128u; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l6; + var_i2 = 32u; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l6; + var_i1 = 0u; + var_i2 = var_l6; + var_i3 = var_l6; + var_i3 = w2c_highlights_f272(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i3; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = 5u; + var_i1 = 3u; + var_i2 = var_l2; + var_i3 = 2u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l1; + var_i4 = 114u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l5 = var_i1; + var_i2 = 4u; + var_i1 |= var_i2; + var_i2 = var_l5; + var_i3 = var_l1; + var_i4 = 115u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 105u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l1; + var_i3 = 73u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + goto var_B39; + } + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 58u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l1; + var_l11 = var_i0; + var_i1 = 39u; + var_i0 = var_i0 != var_i1; + var_i1 = 12u; + var_i0 |= var_i1; + var_l5 = var_i0; + goto var_B39; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 48u; + var_l0 = var_i0; + goto var_B33; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L50: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L50; + } + var_i0 = 48u; + var_l0 = var_i0; + goto var_B33; + } + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l27; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 64u; + var_i2 = var_i2 == var_i3; + var_l2 = var_i2; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 32u; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 60u; + var_l0 = var_i0; + goto var_B33; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l13; + var_i1 = !(var_i1); + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_l2 = var_i2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = 48u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + goto var_L3; + } + var_i0 = var_l13; + var_i1 = var_l7; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 4294967295u; + } else { + var_i0 = var_l4; + var_i1 = var_l1; + var_i2 = 25792u; + var_i3 = 15u; + var_i4 = 56u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l1; + var_i2 = var_l4; + var_i1 -= var_i2; + var_l2 = var_i1; + var_i2 = 6u; + var_i1 = var_i1 >= var_i2; + var_i2 = var_l4; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 409942127713ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 60u; + var_i1 = var_l4; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 24415u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 -= var_i3; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 24415u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l2; + var_i3 = 5u; + var_i2 = var_i2 >= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 4294967295u; + goto var_B59; + } + var_i0 = 18u; + var_i1 = var_l2; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 275u; + var_i1 = var_l2; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 531u; + var_i1 = var_l2; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 19u; + var_i1 = var_l2; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 21u; + var_i1 = var_l2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 3u; + var_i1 = var_l2; + var_i2 = 6u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 7u; + var_i1 = var_l2; + var_i2 = 7u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 60u; + var_i1 = var_l2; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B59;} + var_i0 = 14u; + var_B59:; + } + var_l2 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l2; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i2 = var_l2; + var_i3 = 255u; + var_i2 &= var_i3; + var_l0 = var_i2; + var_i3 = 60u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = 2u; + var_i1 = var_l0; + var_i2 = 19u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 21u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = 18u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = 14u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + } else { + var_i0 = var_l7; + if (var_i0) { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l7; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_i1 = var_l7; + var_i2 = var_l1; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } else { + var_i0 = var_l13; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l13; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 55u; + var_i2 = var_l4; + var_i3 = var_l1; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 16u; + } + } else { + var_i0 = var_l4; + var_i1 = var_l1; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 6u; + } else { + var_i0 = var_l4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 55u; + } else { + var_i0 = 2u; + var_l3 = var_i0; + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l2; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l2; + var_i3 = 64u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_l1 = var_i0; + var_L71: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B72;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B72;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L71; + var_B72:; + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = 25792u; + var_i3 = 15u; + var_i4 = 56u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + } else { + var_i0 = 0u; + } + } + } else { + var_i0 = 0u; + } + } + if (var_i0) { + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = 14u; + } else { + var_i0 = 58u; + } + } + } + } + var_l0 = var_i0; + } + } + goto var_B31; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_l0 = var_i0; + goto var_B33; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l12; + if (var_i0) { + var_i0 = var_l12; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l12; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l12 = var_i0; + var_i0 = var_l0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l12; + var_i1 = 1u; + var_i0 -= var_i1; + var_l12 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l21; + var_l11 = var_i0; + var_i0 = var_l22; + var_l6 = var_i0; + var_i0 = var_l23; + var_l9 = var_i0; + var_i0 = var_l24; + var_l5 = var_i0; + var_i0 = 1u; + var_l16 = var_i0; + var_i0 = instance->w2c_g4; + var_l8 = var_i0; + var_i0 = 0u; + var_l13 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + goto var_L3; + } + } + } + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l3 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 32u; + var_l0 = var_i0; + goto var_B31; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 35u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i1 = var_l1; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_l10 = var_i1; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = 38u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i2 = 2u; + var_i3 = var_l10; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l13 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = var_l0; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l1; + var_i4 = 92u; + var_i3 = var_i3 == var_i4; + var_l10 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 32u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_l10; + var_i1 = var_l1; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = w2c_highlights_f47(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i2 = var_l2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f47(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_l0 = var_i0; + goto var_B33; + } + } + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_L86: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L86; + } + var_i0 = var_l7; + var_i1 = 0u; + var_i2 = var_l7; + var_i3 = 1u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + var_i0 = 25u; + var_l0 = var_i0; + goto var_B32; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + goto var_B32; + var_B39:; + var_i0 = 46u; + var_i1 = 48u; + var_i2 = 44u; + var_i3 = var_l5; + var_i4 = 4u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l5; + var_i3 = 2u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 1u; + var_l16 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_l8 = var_i0; + goto var_B31; + var_B33:; + var_i0 = 0u; + var_l3 = var_i0; + goto var_B31; + var_B32:; + var_i0 = 1u; + var_l3 = var_i0; + var_B31:; + var_i0 = var_l0; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l13 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l26; + if (var_i0) { + var_i0 = 13608u; + instance->w2c_g32 = var_i0; + var_i0 = 13608u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13612u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13616u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13620u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13624u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13628u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13632u; + var_i1 = var_l16; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13636u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13640u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13644u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13648u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13652u; + var_i1 = var_l21; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13656u; + var_i1 = var_l22; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13660u; + var_i1 = var_l23; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13664u; + var_i1 = var_l24; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13668u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13672u; + var_i1 = var_l17; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13676u; + var_i1 = var_l18; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13680u; + var_i1 = var_l25; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f373(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0; + v128 var_l11 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j2, var_j3; + var_i0 = instance->w2c_g7; + var_l10 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13688u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l2 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l10; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l6; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = 0u; + var_i1 = var_l6; + var_i2 = var_l6; + var_i3 = 1u; + var_i2 -= var_i3; + var_l1 = var_i2; + var_L8: + var_i2 = instance->w2c_g4; + var_i3 = 34u; + var_i2 = w2c_highlights_f79(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B9;} + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + var_i2 = 0u; + var_l3 = var_i2; + var_L10: + var_i2 = var_l1; + var_i3 = var_l3; + var_i2 = var_i2 <= var_i3; + if (var_i2) {goto var_B11;} + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 35u; + var_i2 = var_i2 != var_i3; + if (var_i2) {goto var_B11;} + var_i2 = var_l3; + var_i3 = 1u; + var_i2 += var_i3; + var_l3 = var_i2; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + goto var_L10; + var_B11:; + var_i2 = var_l1; + var_i3 = var_l3; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l0; + instance->w2c_g4 = var_i2; + var_i2 = 1u; + goto var_B7; + } else { + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + instance->w2c_g4 = var_i2; + goto var_L8; + } + UNREACHABLE; + var_B9:; + var_i2 = 0u; + var_B7:; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = 44u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_l7 = var_i0; + var_i1 = var_l1; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 5u; + var_i1 = 4u; + var_i2 = var_l1; + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 33u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_i0 = 2u; + var_i1 = var_l0; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 10799u; + var_i1 = 12074u; + var_i2 = var_l0; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = 1u; + var_i1 = var_l0; + var_i2 = 98u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 99u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = 114u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = 1u; + var_i1 <<= (var_i2 & 31); + var_i2 = var_l0; + var_i3 = 114u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l7; + var_i0 += var_i1; + var_l6 = var_i0; + var_L17: + var_i0 = var_l6; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 1u; + var_i0 += var_i1; + var_l6 = var_i0; + goto var_L17; + } + var_i0 = 0u; + var_i1 = var_l6; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B16;} + var_i0 = 44u; + var_i1 = instance->w2c_g4; + var_i2 = var_l6; + var_i3 = 1u; + var_i2 += var_i3; + var_l6 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_i1 = instance->w2c_g4; + var_i0 -= var_i1; + var_i1 = var_l7; + var_i0 -= var_i1; + var_i1 = var_l6; + instance->w2c_g4 = var_i1; + var_B16:; + var_l6 = var_i0; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + } + var_i0 = var_l0; + var_i1 = 98u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 99u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L23: + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f47(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L23; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 > var_i1; + var_i1 = var_l0; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 39u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 22u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + var_l7 = var_i0; + var_i1 = var_l5; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l7; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g41; + var_i1 = instance->w2c_g42; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = var_l8; + if (var_i0) { + var_i0 = 1u; + var_l2 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = var_l1; + var_i2 = 25984u; + var_i3 = 15u; + var_i4 = 56u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l1; + var_i2 = var_l3; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 435710945399ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B30;} + } + var_i0 = var_l5; + var_B30:; + var_l5 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l5; + var_i1 = 255u; + var_i0 &= var_i1; + var_l2 = var_i0; + var_i0 = var_l5; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_l4 = var_i0; + } + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l4; + if (var_i0) { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l4; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_l4 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = var_l4; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + } + var_i0 = 0u; + var_l4 = var_i0; + } else { + var_i0 = var_l5; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 33u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = var_l5; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 14u; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 55u; + var_i2 = var_l3; + var_i3 = var_l1; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 29u; + } + } else { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g39; + var_i0 &= var_i1; + var_i1 = instance->w2c_g38; + var_i1 = !(var_i1); + var_i2 = var_l5; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 58u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 59u; + } else { + var_i0 = 6u; + var_i1 = 55u; + var_i2 = 58u; + var_i3 = var_l0; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l3; + var_i3 = var_l1; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + var_l2 = var_i0; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 23u; + var_i1 = var_l2; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 58u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 2u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 60u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i3 = var_l0; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + } + } + } + var_i0 = var_l2; + var_i1 = var_l3; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g39; + var_i1 = var_l1; + var_i2 = var_l3; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 7632237u; + var_i2 ^= var_i3; + var_i3 = 8u; + var_i2 <<= (var_i3 & 31); + var_i2 = !(var_i2); + var_i1 &= var_i2; + var_i0 &= var_i1; + instance->w2c_g39 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_L44: + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_L44;} + } else { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g36 = var_i0; + var_i0 = instance->w2c_g42; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g41; + if (var_i0) { + w2c_highlights_f38(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = 1u; + instance->w2c_g39 = var_i0; + } else { + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = var_l0; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g36; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g36 = var_i0; + } + } else { + var_i0 = instance->w2c_g41; + var_i1 = instance->w2c_g42; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g38 = var_i0; + } else { + var_i0 = instance->w2c_g38; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g38 = var_i0; + } + } + } + } + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_l5 = var_i0; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_l7 = var_i1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l5; + instance->w2c_g39 = var_i0; + var_i0 = var_l7; + var_i1 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = instance->w2c_g38; + var_i2 = !(var_i2); + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l1; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_l4 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_i1 = 0u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l1; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_l4 = var_i3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f304(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_l4 = var_i0; + var_i1 = var_l0; + var_i2 = 124u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = instance->w2c_g41; + if (var_i0) { + var_i0 = var_l3; + var_i1 = instance->w2c_g4; + w2c_highlights_f42(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + instance->w2c_g39 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 13688u; + instance->w2c_g32 = var_i0; + var_i0 = 13688u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13692u; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13696u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13700u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f374(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6032u); + var_i1 = 7u; + var_i0 >>= (var_i1 & 31); + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f375(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0; + v128 var_l16 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j3, var_j4; + var_i0 = instance->w2c_g7; + var_l13 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13704u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + } + } else { + var_i0 = 0u; + } + } + var_l4 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l13; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l4; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + goto var_B4; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_l1 = var_i0; + var_i0 = var_l4; + var_i1 = 3u; + var_i0 = var_i0 >= var_i1; + var_l14 = var_i0; + var_i0 = var_l4; + var_i1 = 5u; + var_i0 = var_i0 >= var_i1; + var_l15 = var_i0; + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_L9: + var_i0 = instance->w2c_g4; + var_i1 = var_l7; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i3 = 34u; + var_i4 = var_l1; + var_i4 = !(var_i4); + var_i5 = var_l1; + var_i5 = !(var_i5); + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i1; + var_i2 = var_l14; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l7; + var_i2 = 36u; + var_i3 = 0u; + var_i4 = 0u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + } + var_i0 = var_l2; + var_i1 = var_l7; + var_i2 = var_l2; + var_i3 = var_l7; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + goto var_B10; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = var_l11; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l11; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B10;} + var_i0 = var_l11; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l15; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l11; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 5008u); + var_i4 = 6u; + var_i3 >>= (var_i4 & 31); + var_i4 = 1u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L9; + } + var_i0 = 3u; + var_i1 = var_l6; + var_i2 = var_l0; + var_i2 = w2c_highlights_f84(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L9; + } + var_i0 = var_l0; + var_i1 = 8u; + var_i2 = var_l9; + var_i0 = w2c_highlights_f85(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) {goto var_L9;} + var_i0 = 2u; + goto var_B8; + var_B10:; + var_i0 = 44u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + var_B8:; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_l10 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i0 = !(var_i0); + var_i1 = var_l4; + var_i2 = 1u; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l4; + } + } + var_l4 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = var_l0; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f81(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + } + var_i0 = var_l0; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10799u; + var_i1 = 12074u; + var_i2 = 5u; + var_i3 = 4u; + var_i4 = var_l6; + var_i5 = 42u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l4 = var_i0; + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 48u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 96u; + var_i1 = 0u; + var_i2 = 58u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 46u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l2; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 3u; + var_l4 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 4u; + var_l4 = var_i0; + } + var_i0 = var_l1; + var_i1 = var_l2; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i2 = var_l2; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 7823730u; + var_i2 ^= var_i3; + var_i3 = 8u; + var_i2 <<= (var_i3 & 31); + var_i2 = !(var_i2); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L3; + } + var_i0 = 4294967295u; + var_l6 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = var_l1; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 127970252055151ull; + var_j3 ^= var_j4; + var_j4 = 16ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + } + var_i0 = var_l3; + var_i1 = var_l5; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l1; + var_i2 = 26208u; + var_i3 = 15u; + var_i4 = 55u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + } + var_i0 = var_l6; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l6; + var_i1 = 255u; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = var_l6; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + var_l8 = var_i0; + } + var_i0 = 1u; + var_i1 = var_l5; + var_i2 = var_l3; + var_i3 = 20u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_i0 = 23u; + var_l3 = var_i0; + } else { + var_i0 = var_l8; + if (var_i0) { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l8; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = 16u; + var_i1 = 55u; + var_i2 = 29u; + var_i3 = var_l0; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l6; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l6; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l2; + var_i1 = var_l1; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = var_l0; + var_i1 = 65u; + var_i0 -= var_i1; + var_i1 = 25u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 55u; + } else { + var_i0 = 14u; + var_i1 = 58u; + var_i2 = var_l6; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l6; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + var_l3 = var_i0; + } + } + } + var_i0 = var_l3; + var_i1 = var_l2; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l9; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = var_l0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l10; + var_l4 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_i1 = var_l8; + var_i2 = var_l0; + var_i3 = 91u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 93u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l5; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_l6 = var_i0; + var_i1 = var_l0; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + } + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l3 = var_i0; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f374(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f374(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L53: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f374(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B54;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B54;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L53; + var_B54:; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = var_l5; + var_i1 = 0u; + var_i2 = var_l0; + var_i3 = 61u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + } + } + var_l3 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l12; + if (var_i0) { + var_i0 = 13704u; + instance->w2c_g32 = var_i0; + var_i0 = 13704u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13708u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13712u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13716u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13720u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13724u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13728u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f376(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0; + v128 var_l11 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j3, var_j4, var_j5; + var_i0 = instance->w2c_g7; + var_l9 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13736u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l8 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l7 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l9; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l1; + var_i4 = 2u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l1; + var_i4 = 2u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i1 = var_l1; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i0 = var_l4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 3u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 7890280u; + var_i2 ^= var_i3; + var_i3 = 8u; + var_i2 <<= (var_i3 & 31); + var_i2 = !(var_i2); + var_i1 &= var_i2; + var_i2 = var_l0; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 28539402219777653ull; + var_j3 ^= var_j4; + var_j4 = 8ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = 14u; + var_i1 = 17u; + var_i2 = var_l1; + var_i3 = var_l4; + var_i4 = 26432u; + var_i5 = 31u; + var_i6 = 110u; + var_i2 = w2c_highlights_f76(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l0; + var_i4 = 8u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 8389750308618530659ull; + var_i4 = var_j4 == var_j5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 28554769915274610ull; + var_j3 ^= var_j4; + var_j4 = 8ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = var_l1; + var_i1 = 5u; + var_i0 += var_i1; + var_i1 = var_l1; + var_i2 = 4u; + var_i1 += var_i2; + var_i2 = var_l1; + var_i3 = 3u; + var_i2 += var_i3; + var_i3 = var_l1; + var_i4 = var_l1; + var_i4 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 7630441u; + var_i4 ^= var_i5; + var_i5 = 8u; + var_i4 <<= (var_i5 & 31); + var_i4 = !(var_i4); + var_i5 = var_l0; + var_i6 = 3u; + var_i5 = var_i5 > var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l1; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 1953393013u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 4u; + var_i4 = var_i4 > var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 5u; + var_i2 = var_i2 > var_i3; + var_i3 = var_l1; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 495623371106ull; + var_j3 ^= var_j4; + var_j4 = 24ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 48u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l4; + var_i2 = var_l5; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = var_l5; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l1; + var_i0 -= var_i1; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + var_l10 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + var_L12: + var_i0 = var_l4; + var_i1 = var_l5; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B13;} + var_i0 = var_l5; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B13;} + var_i0 = var_l5; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 48u; + var_i0 -= var_i1; + var_i1 = var_l0; + var_i2 = 10u; + var_i1 *= var_i2; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + goto var_L12; + var_B13:; + var_i0 = 56u; + var_i1 = var_l6; + var_i2 = var_l4; + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 32u; + var_i3 = var_i3 <= var_i4; + var_i4 = var_l0; + var_i5 = 7u; + var_i4 &= var_i5; + var_i4 = I32_CLZ(var_i4); + var_i5 = 5u; + var_i4 >>= (var_i5 & 31); + var_i5 = var_l0; + var_i6 = 256u; + var_i5 = var_i5 <= var_i6; + var_i4 &= var_i5; + var_i5 = var_l10; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + } + var_i0 = var_l4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_i0 = 16u; + var_i1 = 29u; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } else { + var_i0 = var_l6; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l6; + var_i1 = 255u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i0 = var_l6; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l2 = var_i0; + if (var_i0) { + var_i0 = var_l2; + var_l3 = var_i0; + } + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l3; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } else { + var_i0 = 14u; + var_i1 = 55u; + var_i2 = 58u; + var_i3 = var_l2; + var_i4 = 65u; + var_i3 -= var_i4; + var_i4 = 25u; + var_i3 = var_i3 <= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + } + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i2 = var_l4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l7 = var_i0; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l2; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 32u; + var_l0 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + } + var_i0 = var_l2; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_l7 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l0; + var_i3 = var_l2; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 4752u); + var_i4 = 128u; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 3984u); + var_i3 = 16u; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + var_B4:; + var_i0 = var_l8; + if (var_i0) { + var_i0 = 13736u; + instance->w2c_g32 = var_i0; + var_i0 = 13736u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13740u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f377(w2c_highlights* instance) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, + var_l9 = 0, var_l10 = 0; + u64 var_l0 = 0; + v128 var_l11 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j0, var_j1, var_j2, var_j4, var_j5; + var_i0 = instance->w2c_g7; + var_l10 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13744u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + } + } + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l10; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 0u; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i1 = var_l4; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l4; + var_i4 = 35u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + var_l5 = var_i0; + } + var_i0 = var_l1; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_l2 = var_i0; + var_i1 = var_l4; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i1 = !(var_i1); + var_i2 = var_l1; + var_i3 = 35u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_l2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 96u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i2 = 44u; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = instance->w2c_g4; + var_l6 = var_i1; + var_i2 = 1u; + var_i1 += var_i2; + var_l2 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B13;} + var_i0 = 0u; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + var_i1 &= var_i2; + if (var_i1) {goto var_B13;} + var_L14: + var_i0 = var_l2; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B15;} + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B15;} + var_i0 = 0u; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f47(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + if (var_i1) {goto var_B13;} + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L14; + var_B15:; + var_i0 = 0u; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l2; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B13;} + var_j0 = 18446744073709551615ull; + var_i1 = 8u; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_l2 = var_i2; + var_i3 = var_l6; + var_i2 -= var_i3; + var_l7 = var_i2; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_j1 = (u64)(var_i1); + var_j0 >>= (var_j1 & 63); + var_l0 = var_j0; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_L16: + var_i0 = instance->w2c_g4; + var_i1 = 36u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = var_l7; + var_i2 = var_l8; + var_i1 += var_i2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + goto var_B17; + } + var_i0 = var_l7; + var_i1 = 8u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_l6; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = var_l0; + var_j0 &= var_j1; + var_i1 = var_l8; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = var_l0; + var_j1 &= var_j2; + var_i0 = var_j0 == var_j1; + } else { + var_i0 = 0u; + var_l2 = var_i0; + var_L20: + var_i0 = var_l2; + var_i1 = var_l7; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l6; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l2; + var_i2 = var_l8; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + goto var_L20; + } + } else { + var_i0 = 1u; + } + } + var_l2 = var_i0; + if (var_i0) { + var_i0 = var_l7; + var_i1 = var_l8; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = var_l8; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L16; + } + var_B17:; + var_i0 = 44u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = var_l6; + var_i1 = var_l7; + var_i2 = 44u; + w2c_highlights_f62(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 1u; + var_B13:; + if (var_i0) {goto var_L2;} + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 58u; + var_l1 = var_i0; + var_i0 = var_l5; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l4; + var_i4 = 35u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i1 = 2u; + var_i0 -= var_i1; + var_i1 = 6u; + var_i0 = var_i0 > var_i1; + if (var_i0) {goto var_B32;} + var_i0 = var_l3; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 2314885530818453536ull; + var_j0 |= var_j1; + var_j1 = 18446744073709551615ull; + var_i2 = 8u; + var_i3 = var_l1; + var_i2 -= var_i3; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_j2 = (u64)(var_i2); + var_j1 >>= (var_j2 & 63); + var_j0 &= var_j1; + var_l0 = var_j0; + var_i0 = (u32)(var_j0); + var_i1 = 255u; + var_i0 &= var_i1; + var_i1 = 97u; + var_i0 -= var_i1; + switch (var_i0) { + case 0: goto var_B53; + case 1: goto var_B52; + case 2: goto var_B51; + case 3: goto var_B50; + case 4: goto var_B49; + case 5: goto var_B48; + case 6: goto var_B47; + case 7: goto var_B46; + case 8: goto var_B45; + case 9: goto var_B44; + case 10: goto var_B33; + case 11: goto var_B43; + case 12: goto var_B33; + case 13: goto var_B42; + case 14: goto var_B41; + case 15: goto var_B40; + case 16: goto var_B33; + case 17: goto var_B39; + case 18: goto var_B38; + case 19: goto var_B37; + case 20: goto var_B36; + case 21: goto var_B35; + case 22: goto var_B34; + default: goto var_B33; + } + var_B53:; + var_j0 = var_l0; + var_j1 = 29537ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 6517601ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 7105633ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 6581857ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B30;} + goto var_B32; + var_B52:; + var_j0 = var_l0; + var_j1 = 31074ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 31073733908391266ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B30;} + var_j0 = var_l0; + var_j1 = 1651469410ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 31069335677005666ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 128017563609442ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B29;} + goto var_B32; + var_B51:; + var_j0 = var_l0; + var_j1 = 111550524650083ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + var_i0 = 18u; + var_j1 = var_l0; + var_j2 = 1702060387ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B28;} + var_j0 = var_l0; + var_j1 = 1918986339ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B29;} + goto var_B32; + var_B50:; + var_j0 = var_l0; + var_j1 = 1668506980ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 8386668330298337636ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 111550592214372ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 32770348699510116ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 30506420032202084ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 111516182736740ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 1702125924ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B29;} + goto var_B32; + var_B49:; + var_j0 = var_l0; + var_j1 = 6581861ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 126943989692517ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B30;} + var_i0 = 18u; + var_j1 = var_l0; + var_j2 = 1702063205ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B28;} + goto var_B32; + var_B48:; + var_j0 = var_l0; + var_j1 = 1836020326ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 1819047270ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 31075949809397606ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_i0 = 3u; + var_j1 = var_l0; + var_j2 = 435728179558ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B28;} + goto var_B32; + var_B47:; + var_j0 = var_l0; + var_j1 = 483006575207ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + goto var_B32; + var_B46:; + var_j0 = var_l0; + var_j1 = 113723913429352ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + goto var_B32; + var_B45:; + var_j0 = var_l0; + var_j1 = 128034677157481ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 1869901417ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 491328007785ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 28265ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 29545ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B30;} + var_j0 = var_l0; + var_j1 = 32199642103180905ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B29;} + goto var_B32; + var_B44:; + var_j0 = var_l0; + var_j1 = 1852403562ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 1852797802ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 422759592810ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B29;} + goto var_B32; + var_B43:; + var_j0 = var_l0; + var_j1 = 1952867692ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 499984984428ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 1701538156ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B30;} + goto var_B32; + var_B42:; + var_j0 = var_l0; + var_j1 = 7630702ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B30;} + var_j0 = var_l0; + var_j1 = 491260502894ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B29;} + var_i0 = 7u; + var_j1 = var_l0; + var_j2 = 1819047278ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B28;} + goto var_B32; + var_B41:; + var_j0 = var_l0; + var_j1 = 491327353455ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 491328402799ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 28271ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 29295ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B30;} + goto var_B32; + var_B40:; + var_j0 = var_l0; + var_j1 = 34184234955010672ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + goto var_B32; + var_B39:; + var_j0 = var_l0; + var_j1 = 499967814002ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 1818322290ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B29;} + goto var_B32; + var_B38:; + var_j0 = var_l0; + var_j1 = 127970252186995ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 7628147ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + goto var_B32; + var_B37:; + var_j0 = var_l0; + var_j1 = 435610083700ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 28532ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_i0 = 18u; + var_j1 = var_l0; + var_j2 = 1852139636ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B28;} + var_j0 = var_l0; + var_j1 = 1954047348ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B29;} + var_i0 = 3u; + var_j1 = var_l0; + var_j2 = 1702195828ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B28;} + goto var_B32; + var_B36:; + var_j0 = var_l0; + var_j1 = 111550524584053ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 444234036085ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + var_j1 = var_l0; + var_j2 = 474315583093ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 1684632949ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B29;} + goto var_B32; + var_B35:; + var_j0 = var_l0; + var_j1 = 126879598928246ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B31;} + var_j0 = var_l0; + var_j1 = 32195248317948278ull; + var_i0 = var_j0 == var_j1; + if (var_i0) {goto var_B29;} + goto var_B32; + var_B34:; + var_j0 = var_l0; + var_j1 = 435710945399ull; + var_i0 = var_j0 == var_j1; + var_j1 = var_l0; + var_j2 = 1752459639ull; + var_i1 = var_j1 == var_j2; + var_i0 |= var_i1; + if (var_i0) {goto var_B31;} + var_i0 = 18u; + var_j1 = var_l0; + var_j2 = 1852139639ull; + var_i1 = var_j1 == var_j2; + if (var_i1) {goto var_B28;} + goto var_B32; + var_B33:; + var_i0 = 58u; + goto var_B28; + var_B32:; + var_i0 = 58u; + goto var_B28; + var_B31:; + var_i0 = 17u; + goto var_B28; + var_B30:; + var_i0 = 21u; + goto var_B28; + var_B29:; + var_i0 = 56u; + var_B28:; + var_l1 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 14u; + var_i2 = var_l3; + var_l1 = var_i2; + var_i3 = 1u; + var_i2 -= var_i3; + var_l2 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = instance->w2c_g0; + var_i3 = var_i3 > var_i4; + var_i2 &= var_i3; + if (var_i2) { + var_i2 = var_l2; + var_l1 = var_i2; + var_L56: + var_i2 = var_l1; + var_i3 = instance->w2c_g0; + var_i2 = var_i2 <= var_i3; + if (var_i2) {goto var_B57;} + var_i2 = var_l1; + var_i3 = 1u; + var_i2 -= var_i3; + var_l2 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i2 = w2c_highlights_f47(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + if (var_i2) {goto var_B57;} + var_i2 = var_l2; + var_l1 = var_i2; + goto var_L56; + var_B57:; + } + var_L58: + var_i2 = var_l1; + var_i3 = instance->w2c_g0; + var_i2 = var_i2 <= var_i3; + if (var_i2) {goto var_B59;} + var_i2 = var_l1; + var_i3 = 1u; + var_i2 -= var_i3; + var_l2 = var_i2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l4 = var_i2; + var_i3 = 32u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l4; + var_i4 = 9u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + if (var_i2) {goto var_B59;} + var_i2 = var_l2; + var_l1 = var_i2; + goto var_L58; + var_B59:; + var_i2 = var_l1; + var_L60: + var_i3 = var_l1; + var_i4 = instance->w2c_g0; + var_i3 = var_i3 <= var_i4; + if (var_i3) {goto var_B61;} + var_i3 = var_l1; + var_i4 = 1u; + var_i3 -= var_i4; + var_l2 = var_i3; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i3 = w2c_highlights_f47(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = !(var_i3); + if (var_i3) {goto var_B61;} + var_i3 = var_l2; + var_l1 = var_i3; + goto var_L60; + var_B61:; + var_i3 = var_l1; + var_i2 -= var_i3; + var_l2 = var_i2; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 538976288u; + var_i3 |= var_i4; + var_i4 = 1869901417u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l2; + var_i4 = 5u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 137977929760ull; + var_j4 |= var_j5; + var_j5 = 435610083700ull; + var_j4 ^= var_j5; + var_j5 = 24ull; + var_j4 <<= (var_j5 & 63); + var_i4 = !(var_j4); + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l1; + } + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 60u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 93u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6288u); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 43u; + var_i1 -= var_i2; + var_i2 = 3u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 60u; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_l1; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L2; + var_B3:; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f378(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l1; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_i1 = var_l1; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f379(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0; + v128 var_l16 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j0, var_j1, var_j2, var_j3; + var_i0 = instance->w2c_g7; + var_l15 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13744u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l13 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l4 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l15; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l13; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l11; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = 0u; + var_i1 = var_l11; + var_i2 = var_l11; + var_i3 = 1u; + var_i2 >>= (var_i3 & 31); + var_i3 = 1u; + var_i2 -= var_i3; + var_l1 = var_i2; + var_i2 = var_l11; + var_i3 = 1u; + var_i2 &= var_i3; + var_l3 = var_i2; + var_L8: + var_i2 = instance->w2c_g4; + var_i3 = 34u; + var_i4 = 92u; + var_i2 = w2c_highlights_f78(instance, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B9;} + var_i2 = instance->w2c_g4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 92u; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + instance->w2c_g4 = var_i2; + var_i2 = instance->w2c_g4; + var_l2 = var_i2; + var_i2 = 0u; + var_l0 = var_i2; + var_L11: + var_i2 = var_l0; + var_i3 = var_l1; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B12;} + var_i2 = var_l2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 35u; + var_i2 = var_i2 != var_i3; + if (var_i2) {goto var_B12;} + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_l2 = var_i2; + goto var_L11; + var_B12:; + var_i2 = var_l0; + var_i3 = var_l1; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_i3 = instance->w2c_g3; + var_i2 = w2c_highlights_f9(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i2; + } + goto var_L8; + } + var_i2 = var_l3; + var_i2 = !(var_i2); + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = 34u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 2u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 34u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 |= var_i3; + if (var_i2) { + var_i2 = instance->w2c_g4; + var_i3 = 3u; + var_i4 = 1u; + var_i5 = var_l3; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i2 += var_i3; + var_l2 = var_i2; + var_i2 = 0u; + var_l0 = var_i2; + var_L15: + var_i2 = var_l0; + var_i3 = var_l1; + var_i2 = var_i2 >= var_i3; + if (var_i2) {goto var_B16;} + var_i2 = var_l2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 35u; + var_i2 = var_i2 != var_i3; + if (var_i2) {goto var_B16;} + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_l2 = var_i2; + goto var_L15; + var_B16:; + var_i2 = var_l0; + var_i3 = var_l1; + var_i2 = var_i2 == var_i3; + if (var_i2) { + var_i2 = var_l2; + instance->w2c_g4 = var_i2; + var_i2 = 1u; + goto var_B7; + } + } + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + instance->w2c_g4 = var_i2; + goto var_L8; + var_B9:; + var_i2 = 0u; + var_B7:; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = 44u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l12; + if (var_i0) { + var_i0 = var_l6; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + } + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + var_L20: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B21;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B21; + } + var_i0 = var_l2; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B21;} + var_i0 = var_l2; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l9; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + var_i0 = 1u; + var_l0 = var_i0; + goto var_B21; + } + var_i0 = var_l6; + var_i0 = w2c_highlights_f84(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + var_l6 = var_i1; + if (var_i0) { + var_i0 = 1u; + var_l12 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + goto var_B21; + } + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L20; + var_B21:; + var_i0 = var_l0; + var_i0 = !(var_i0); + var_i1 = var_l6; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l6; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + } + goto var_L3; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l7; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10799u; + var_i1 = 12074u; + var_i2 = 5u; + var_i3 = 4u; + var_i4 = var_l7; + var_i5 = 42u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_L30: + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L30; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f378(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + } + var_i0 = var_l2; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f378(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l11 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 27u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g41; + var_i1 = instance->w2c_g42; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = instance->w2c_g4; + var_l2 = var_i1; + var_i2 = 26880u; + var_i3 = 15u; + var_i4 = 64u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 17u; + var_i1 = var_l2; + var_i2 = var_l3; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 435710945399ull; + var_j2 ^= var_j3; + var_j3 = 24ull; + var_j2 <<= (var_j3 & 63); + var_i2 = !(var_j2); + var_i1 &= var_i2; + if (var_i1) {goto var_B39;} + } + var_i0 = var_l0; + var_B39:; + var_l0 = var_i0; + var_i1 = 2047u; + var_i0 = (u32)((s32)var_i0 > (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 4294967295u; + var_i2 = var_l2; + var_l0 = var_i2; + var_L42: + var_i2 = var_l0; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i2; + var_i3 = 32u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l7; + var_i4 = 9u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + if (var_i2) { + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_l0 = var_i2; + goto var_L42; + } + var_i2 = var_l7; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l0; + var_i1 = 255u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i1 = 768u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_i1 = 3u; + var_i0 &= var_i1; + var_l10 = var_i0; + } else { + var_i0 = var_l0; + var_i1 = 19u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = var_l2; + var_i1 = var_l3; + var_i0 -= var_i1; + var_i1 = 9u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 8100131176265708915ull; + var_i1 = var_j1 == var_j2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + } + } + } + var_i0 = var_l8; + var_i1 = 1u; + var_i2 = var_l5; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_i1 = var_l8; + var_i2 = var_l0; + var_i3 = 1024u; + var_i2 &= var_i3; + var_i3 = 0u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l5; + var_i4 = 32u; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + } else { + var_i0 = var_l2; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l7 = var_i0; + var_i0 = var_l10; + if (var_i0) { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l10; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_l0 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + } + var_i0 = 0u; + var_l10 = var_i0; + } else { + var_i0 = var_l7; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_l0; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l3; + var_i0 -= var_i1; + var_l0 = var_i0; + var_i0 = var_l7; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l14 = var_i0; + var_i1 = 63u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l14; + var_i2 = 33u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i0 = !(var_i0); + var_i1 = var_l7; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 1953066601u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + goto var_B52; + } + var_i0 = 0u; + var_i1 = var_l14; + var_i2 = 123u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l8; + var_i3 = 1u; + var_i4 = var_l5; + var_i3 <<= (var_i4 & 31); + var_i2 &= var_i3; + var_i3 = 0u; + var_i4 = var_l5; + var_i5 = 32u; + var_i4 = var_i4 < var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B52;} + var_i0 = 1u; + var_i1 = var_l4; + if (var_i1) {goto var_B52;} + var_i0 = 0u; + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + if (var_i1) {goto var_B52;} + var_i0 = var_l0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 16777215u; + var_i0 &= var_i1; + var_l0 = var_i0; + var_i1 = 7628135u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 7628147u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + goto var_B52; + } + var_i0 = var_l0; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 127978539608420ull; + var_j0 ^= var_j1; + var_j1 = 16ull; + var_j0 <<= (var_j1 & 63); + var_i0 = !(var_j0); + var_i0 = !(var_i0); + goto var_B52; + } + var_i0 = var_l0; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_j1 = 32762506274171255ull; + var_j0 ^= var_j1; + var_j1 = 8ull; + var_j0 <<= (var_j1 & 63); + var_i0 = !(var_j0); + var_i0 = !(var_i0); + goto var_B52; + } + var_i0 = 1u; + var_B52:; + } else { + var_i0 = 0u; + } + } + if (var_i0) { + var_i0 = 16u; + var_i1 = 14u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = var_l4; + var_i0 = !(var_i0); + var_i1 = var_l2; + var_i2 = var_l3; + var_i1 -= var_i2; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 1953066601u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + } + } else { + var_i0 = var_l4; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g39; + var_i0 &= var_i1; + var_i1 = instance->w2c_g38; + var_i1 = !(var_i1); + var_i2 = var_l2; + var_i3 = var_l3; + var_i2 -= var_i3; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 95u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i2 = I32_CLZ(var_i2); + var_i3 = 5u; + var_i2 >>= (var_i3 & 31); + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 59u; + } else { + var_i0 = var_l3; + var_i1 = var_l2; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + var_l1 = var_i0; + } + } + } + var_i0 = var_l1; + var_i1 = var_l3; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l1; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l9; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = instance->w2c_g4; + var_l6 = var_i0; + var_i0 = 1u; + var_l12 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l9; + if (var_i0) { + var_i0 = var_l9; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l9; + var_i2 = var_l1; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i3 = 41u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + } + var_i0 = var_l8; + var_i1 = 4294967294u; + var_i2 = var_l5; + var_i1 = I32_ROTL(var_i1, var_i2); + var_i0 &= var_i1; + var_i1 = var_l8; + var_i2 = var_l1; + var_i3 = 41u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 93u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_l0 = var_i2; + var_i3 = var_l1; + var_i4 = 123u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l1; + var_i5 = 125u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i3 = var_l5; + var_i4 = 32u; + var_i3 = var_i3 < var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l5; + var_i2 = var_l1; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i4 = 91u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 -= var_i1; + var_l5 = var_i0; + } + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g36 = var_i0; + var_i0 = instance->w2c_g42; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g41; + if (var_i0) { + w2c_highlights_f38(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = 1u; + instance->w2c_g39 = var_i0; + } else { + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = var_l1; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g36; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g36 = var_i0; + } + } else { + var_i0 = instance->w2c_g41; + var_i1 = instance->w2c_g42; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g38 = var_i0; + } else { + var_i0 = instance->w2c_g38; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g38 = var_i0; + } + } + } + } + } + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l1; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_l7 = var_i1; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l0; + instance->w2c_g39 = var_i0; + var_i0 = var_l7; + if (var_i0) { + var_i0 = var_l8; + var_i1 = 4294967294u; + var_i2 = var_l5; + var_i1 = I32_ROTL(var_i1, var_i2); + var_i0 &= var_i1; + var_i1 = var_l8; + var_i2 = var_l5; + var_i3 = 32u; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g38; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l2; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + var_l4 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L84: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B85;} + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 42u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B85;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L84; + var_B85:; + var_i0 = 25u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = var_l10; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 1u; + instance->w2c_g41 = var_i0; + var_i0 = 0u; + instance->w2c_g42 = var_i0; + } else { + var_i0 = instance->w2c_g41; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l3; + var_i0 -= var_i1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 33u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l3; + var_i1 = instance->w2c_g4; + w2c_highlights_f42(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + } + var_i0 = 0u; + instance->w2c_g39 = var_i0; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l4 = var_i0; + } + goto var_L3; + var_B4:; + var_i0 = var_l13; + if (var_i0) { + var_i0 = 13744u; + instance->w2c_g32 = var_i0; + var_i0 = 13744u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13748u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13752u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13756u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13760u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13764u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13768u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13772u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f380(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0; + v128 var_l16 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + var_i0 = instance->w2c_g7; + var_l15 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62336u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13776u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l14 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l6 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 1u; + } + } + var_l10 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l15; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l11; + var_i2 = var_l9; + var_i3 = var_l12; + var_i0 = w2c_highlights_f267(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + goto var_L3; + } + } + var_i0 = var_l8; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + goto var_B4; + } + var_i0 = var_l4; + var_i1 = instance->w2c_g4; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_L11: + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 36u; + var_i2 = 37u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 36u; + var_i2 = 37u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l2; + } + } + var_l2 = var_i0; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = var_l2; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + goto var_B12; + } + var_i0 = var_l4; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B12;} + var_i0 = var_l4; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f51(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l1; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 3u; + var_i1 = var_l7; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 -= var_i3; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_l7 = var_i2; + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l7; + var_i4 = 13u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i3 = instance->w2c_g4; + var_i4 = instance->w2c_g3; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l7 = var_i0; + goto var_L11; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L11; + } + var_i0 = var_l6; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 -= var_i2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + goto var_B10; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L11; + } + UNREACHABLE; + var_B12:; + var_i0 = 44u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l7; + var_B10:; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l7 = var_i0; + var_i0 = var_l1; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l1; + var_i1 = 3u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + } else { + var_i0 = var_l7; + } + } + var_l4 = var_i0; + goto var_L3; + } + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f81(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 1u; + var_l10 = var_i0; + } + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l13 = var_i0; + var_i0 = var_l10; + var_l7 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 35u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f61(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l8 = var_i0; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l13; + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = instance->w2c_g4; + var_i3 = 3u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f46(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l13; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_l1 = var_i3; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l1; + var_l12 = var_i1; + var_i2 = 2u; + var_i1 += var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l11 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = var_l11; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = 44u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 36u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 45u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l13 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = var_l5; + var_i3 = 27136u; + var_i4 = 7u; + var_i5 = 28u; + var_i1 = w2c_highlights_f75(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 18u; + } else { + var_i0 = var_l0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 3u; + } else { + var_i0 = var_l0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 7u; + } else { + var_i0 = var_l0; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 61u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 56u; + } else { + var_i0 = var_l0; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 60u; + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = var_l1; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l13; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 14u; + } else { + var_i0 = 19u; + var_i1 = 58u; + var_i2 = var_l7; + var_i3 = var_l1; + var_i3 = w2c_highlights_f46(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i4 = var_l1; + var_i5 = 34u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l1; + var_i6 = 123u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + } + } + } + } + } + var_i1 = var_l2; + var_i2 = var_l5; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l5; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + w2c_highlights_f48(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l6; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 1u; + var_i0 -= var_i1; + var_l6 = var_i0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 40u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l8 = var_i0; + var_i0 = instance->w2c_g4; + var_l4 = var_i0; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + } + } + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_l5; + var_i4 = 46u; + var_i3 = var_i3 == var_i4; + var_l1 = var_i3; + var_i4 = var_l13; + var_i5 = 46u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = 35u; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6288u); + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 124u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = var_l5; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_l5; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l14; + if (var_i0) { + var_i0 = 13776u; + instance->w2c_g32 = var_i0; + var_i0 = 13776u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13780u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13784u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13788u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13792u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13796u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13800u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13804u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f381(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = w2c_highlights_f45(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = var_p1; + var_i1 = var_i1 < var_i2; + var_i2 = var_p1; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i0 = !(var_i0); + if (var_i0) {goto var_B0;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + var_L1: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = w2c_highlights_f45(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = var_p1; + var_i1 = var_i1 < var_i2; + var_i2 = var_p1; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L1; + } + var_i0 = var_l2; + var_i1 = 95u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i0 = w2c_highlights_f45(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = var_p1; + var_i1 = var_i1 < var_i2; + var_i2 = var_p1; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i0 = !(var_i0); + if (var_i0) {goto var_B0;} + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L1; + UNREACHABLE; + var_B0:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f382(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6288u); + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = 9u; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f383(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i2 = 2u; + var_i1 += var_i2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 4294967295u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 4294967295u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 10u; + var_i1 *= var_i2; + var_i0 += var_i1; + var_i1 = 528u; + var_i0 -= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f384(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = w2c_highlights_f383(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p1; + var_i0 -= var_i1; + var_i1 = var_p2; + var_i2 = var_p1; + var_i1 -= var_i2; + var_i0 = var_i0 <= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f385(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 0u; + var_i2 = 23u; + var_i0 = w2c_highlights_f384(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 3u; + var_i1 += var_i2; + var_i2 = 0u; + var_i3 = 59u; + var_i1 = w2c_highlights_f384(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + } else { + var_i0 = 0u; + } + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f386(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 9u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_l1; + var_i1 = 13u; + var_i0 = var_i0 != var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 10u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 2u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f387(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + v128 var_l8 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = var_p3; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f386(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_p2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 2u; + goto var_Bfunc; + } + var_i0 = 0u; + var_p3 = var_i0; + } + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = 34u; + var_i3 = 1u; + var_i4 = var_p0; + var_i4 = !(var_i4); + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i1 = 34u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l4; + var_i2 = 92u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = var_l4; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + goto var_B3; + } + var_i0 = 0u; + var_l4 = var_i0; + var_L6: + var_i0 = var_l4; + var_i1 = 5u; + var_i0 = var_i0 >= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B7;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 34u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B7;} + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L6; + var_B7:; + var_i0 = var_l4; + var_i1 = 3u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l7 = var_i0; + goto var_B3; + } + } else { + var_i0 = var_p1; + var_i1 = var_p2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = 0u; + var_p3 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_p2 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_l4 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6288u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_p2 = var_i0; + } + var_i0 = 2u; + var_i1 = 4u; + var_i2 = 8u; + var_i3 = 0u; + var_i4 = var_l4; + var_i5 = 85u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l4; + var_i4 = 117u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l4; + var_i3 = 120u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + var_i2 = var_l4; + var_i3 = 2u; + var_i2 += var_i3; + var_i1 += var_i2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = var_l5; + } else { + var_i0 = var_p2; + } + var_p2 = var_i0; + } + var_i0 = var_p0; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + var_L14: + var_i0 = var_l4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B15;} + var_i0 = var_l4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = 9u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l5; + var_i2 = 32u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) {goto var_B15;} + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + goto var_L14; + var_B15:; + var_i0 = var_l4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = 1u; + var_p3 = var_i0; + } + var_i0 = var_l4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 2u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = 1u; + } else { + var_i0 = var_p3; + } + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = var_l4; + var_i0 = w2c_highlights_f386(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p2 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = var_p2; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 == var_i1; + } else { + var_i0 = 0u; + } + } else { + var_i0 = 0u; + } + var_p3 = var_i0; + } + var_i0 = 45u; + var_i1 = var_p1; + var_i2 = var_l6; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = instance->w2c_g4; + var_i2 = var_p2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_p2 = var_i0; + } + goto var_L2; + var_B3:; + var_i0 = var_p1; + var_i1 = var_p2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = 2u; + var_i2 = 0u; + var_i3 = var_p3; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f388(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13u; + instance->w2c_g25 = var_i0; + var_i0 = var_p0; + instance->w2c_g26 = var_i0; + var_i0 = var_p1; + instance->w2c_g27 = var_i0; + var_i0 = var_p2; + instance->w2c_g29 = var_i0; + } + FUNC_EPILOGUE; +} + +void w2c_highlights_f389(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 1u; + var_i3 = var_p0; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_i0 = var_p0; + var_i1 = var_p0; + var_i2 = var_p1; + var_i3 = var_l2; + var_i4 = 0u; + var_i1 = w2c_highlights_f387(instance, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i2 = 1u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = var_l2; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + var_i2 = var_p1; + w2c_highlights_f388(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f390(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = 39u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = 0u; + var_l2 = var_i0; + var_L2: + var_i0 = var_l2; + var_i1 = 5u; + var_i0 = var_i0 >= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 39u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B3;} + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L2; + var_B3:; + var_i0 = var_l2; + var_i1 = 3u; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L0;} + var_i0 = 1u; + var_l3 = var_i0; + var_B1:; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f391(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0; + v128 var_l13 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j1, var_j2; + v128 var_o1, var_o2, var_o3, var_o4; + var_i0 = instance->w2c_g7; + var_l12 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 1u; + var_l4 = var_i0; + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13808u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l9 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l7 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l12; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + var_i1 = 0u; + var_l0 = var_i1; + var_L6: + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 >= var_i2; + if (var_i1) {goto var_B7;} + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l2 = var_i1; + var_i2 = 9u; + var_i1 = var_i1 != var_i2; + var_i2 = var_l2; + var_i3 = 10u; + var_i2 = var_i2 != var_i3; + var_i1 &= var_i2; + var_i2 = var_l2; + var_i3 = 13u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l2; + var_i4 = 32u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B7;} + var_i1 = 1u; + var_i2 = var_l0; + var_i3 = var_l2; + var_i4 = 10u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l0 = var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + instance->w2c_g4 = var_i1; + goto var_L6; + var_B7:; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = var_l4; + var_i1 = 1u; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 29u; + var_i1 = 44u; + var_i2 = var_l4; + var_i3 = var_l7; + var_i2 |= var_i3; + var_l5 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g4; + var_i2 = 3u; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l0; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + var_i1 = var_l5; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l2; + w2c_highlights_f389(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l2; + var_i1 = var_l0; + var_i0 = w2c_highlights_f390(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = var_l2; + w2c_highlights_f388(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + } else { + var_i0 = var_l0; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l2; + w2c_highlights_f389(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 39u; + var_i1 = 0u; + var_i2 = var_l2; + w2c_highlights_f55(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 95u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i3 = 32u; + var_i2 |= var_i3; + var_i3 = 97u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l4; + var_i2 = var_l7; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g3; + var_L17: + var_i1 = instance->w2c_g3; + var_i2 = var_l0; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = var_l0; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l13 = var_o1; + var_i2 = 32u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_i2 = 97u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_sub(var_o1, var_o2); + var_i2 = 25u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_u8x16_le(var_o1, var_o2); + var_o2 = var_l13; + var_i3 = 48u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_sub(var_o2, var_o3); + var_i3 = 9u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_u8x16_le(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_o2 = var_l13; + var_i3 = 95u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_eq(var_o2, var_o3); + var_o3 = var_l13; + var_i4 = 45u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_i1 = v128_i8x16_bitmask(var_o1); + var_i2 = 65535u; + var_i1 ^= var_i2; + var_l1 = var_i1; + if (var_i1) { + var_i1 = var_l0; + var_i2 = var_l1; + var_i2 = I32_CTZ(var_i2); + var_i1 += var_i2; + } else { + var_i1 = var_l0; + var_i2 = 16u; + var_i1 += var_i2; + var_l0 = var_i1; + goto var_L17; + } + } else { + var_i1 = var_l0; + } + var_l0 = var_i1; + var_i2 = var_l0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 29u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_l3; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l7 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = 1024u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 45136u; + var_i0 += var_i1; + var_i1 = 0u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 93u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l7; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 93u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l7; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } else { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l3; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + } + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1024u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 45136u; + var_i0 += var_i1; + var_i1 = 1u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = var_l3; + var_i2 = var_l3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_l1 = var_i0; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l3; + var_i2 = 1024u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 45135u; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + var_i0 = 0u; + } + var_l4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 4u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 1702195828u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i2 = w2c_highlights_f382(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 6u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = 5u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l2; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 435728179558ull; + var_j1 ^= var_j2; + var_j2 = 24ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i2 = var_l1; + var_i2 = w2c_highlights_f382(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 6u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + var_i1 = var_l0; + var_i2 = 43u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 += var_i1; + var_l5 = var_i0; + var_i1 = 3u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l5; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 16777215u; + var_i1 &= var_i2; + var_l1 = var_i1; + var_i2 = 6712937u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 7233902u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l0; + var_i2 = w2c_highlights_f382(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 1u; + var_l11 = var_i0; + var_i0 = instance->w2c_g3; + var_i1 = var_l2; + var_l0 = var_i1; + var_i2 = 10u; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 7u); + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = var_l2; + var_i0 = w2c_highlights_f383(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = var_l2; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f383(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l2; + var_i1 = 5u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f383(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i1 = 1u; + var_i0 -= var_i1; + var_i1 = 11u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l1; + var_i2 = var_l6; + var_i1 |= var_i2; + var_i2 = 0u; + var_i1 = (u32)((s32)var_i1 >= (s32)var_i2); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 8u; + var_i0 += var_i1; + var_i1 = 1u; + var_i2 = 62648012u; + var_i3 = var_l8; + var_i4 = 1u; + var_i3 <<= (var_i4 & 31); + var_i2 >>= (var_i3 & 31); + var_i3 = 3u; + var_i2 &= var_i3; + var_i3 = 28u; + var_i2 += var_i3; + var_i3 = var_l1; + var_i4 = var_l6; + var_i5 = var_l1; + var_i3 = var_i5 ? var_i3 : var_i4; + var_i4 = 3u; + var_i3 &= var_i4; + var_i3 = I32_CLZ(var_i3); + var_i4 = 5u; + var_i3 >>= (var_i4 & 31); + var_i4 = var_l8; + var_i5 = 2u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 += var_i3; + var_i0 = w2c_highlights_f384(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 10u; + var_i0 += var_i1; + var_l6 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l8 = var_i0; + var_i0 = var_l6; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = w2c_highlights_f385(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l8; + var_i2 = 32u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l8; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 116u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l10 = var_i0; + var_i0 = var_l1; + var_l0 = var_i0; + } else { + var_i0 = 0u; + var_l11 = var_i0; + var_i0 = var_l6; + var_i0 = w2c_highlights_f382(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l6; + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + } + } + } + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f385(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l11; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = var_l0; + var_i1 = 5u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = 0u; + var_i3 = 60u; + var_i1 = w2c_highlights_f384(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l6 = var_i0; + var_i0 = var_l1; + var_i1 = 3u; + var_i0 += var_i1; + var_l1 = var_i0; + } + var_i0 = var_l6; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l1; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 1u); + var_i3 = w2c_highlights_f44(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 &= var_i3; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_l1 = var_i0; + var_L46: + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B47;} + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = !(var_i0); + if (var_i0) {goto var_B47;} + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L46; + var_B47:; + } + var_i0 = var_l10; + if (var_i0) { + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 122u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l1; + var_i1 = 6u; + var_i0 += var_i1; + var_i1 = var_l1; + var_i2 = var_l1; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f385(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l0; + var_i4 = 43u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 45u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f382(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l1; + instance->w2c_g4 = var_i0; + var_i0 = 47u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + } + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 48u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l2; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 8u; + var_i2 = 16u; + var_i3 = 0u; + var_i4 = var_l2; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 1u); + var_l0 = var_i4; + var_i5 = 120u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l0; + var_i4 = 111u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 98u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l1 = var_i0; + } + var_i0 = var_l1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 2u; + var_i0 += var_i1; + var_l6 = var_i0; + var_i1 = var_l1; + var_i0 = w2c_highlights_f381(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = var_l6; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + } + var_i0 = var_l5; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = var_l5; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 48u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l5; + var_i1 = 10u; + var_i0 = w2c_highlights_f381(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_l1 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = var_l1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i2 = w2c_highlights_f44(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 &= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 10u; + var_i0 = w2c_highlights_f381(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 32u; + var_i0 |= var_i1; + var_i1 = 101u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l5; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + } + var_i0 = var_l0; + var_i1 = var_l0; + var_i2 = 10u; + var_i1 = w2c_highlights_f381(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l5; + } else { + var_i0 = var_l1; + } + } else { + var_i0 = var_l1; + } + instance->w2c_g4 = var_i0; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_L60: + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f382(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) {goto var_B61;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 39u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 91u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B61;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L60; + var_B61:; + var_i0 = instance->w2c_g4; + var_i1 = var_l2; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + var_B4:; + var_i0 = var_l3; + instance->w2c_g33 = var_i0; + var_i0 = var_l9; + if (var_i0) { + var_i0 = 13808u; + instance->w2c_g32 = var_i0; + var_i0 = 13808u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13812u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13816u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f392(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g3; + var_i1 = var_p1; + instance->w2c_g3 = var_i1; + var_i1 = var_p0; + instance->w2c_g4 = var_i1; + w2c_highlights_f118(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_i0 = var_p1; + instance->w2c_g4 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f393(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0; + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g3; + var_i1 = var_p1; + instance->w2c_g3 = var_i1; + var_i1 = var_p0; + instance->w2c_g4 = var_i1; + var_i1 = 3u; + w2c_highlights_f191(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_i0 = var_p1; + instance->w2c_g4 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f394(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = instance->w2c_g3; + var_i1 = var_p1; + instance->w2c_g3 = var_i1; + var_i1 = var_p0; + instance->w2c_g4 = var_i1; + var_i1 = var_p2; + w2c_highlights_f194(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i0; + var_i0 = var_p1; + instance->w2c_g4 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f395(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0; + v128 var_l8 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = var_p0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p1; + var_i0 &= var_i1; + var_l6 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 11u; + w2c_highlights_f68(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p3; + instance->w2c_g26 = var_i0; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 4u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + instance->w2c_g27 = var_i0; + var_i0 = var_p2; + instance->w2c_g28 = var_i0; + } + var_i0 = 0u; + goto var_B1; + } + var_i0 = var_p0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = var_p2; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i0 = var_p1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l4; + var_i2 = 0u; + w2c_highlights_f394(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l5; + var_i1 = var_l4; + w2c_highlights_f393(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l4; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_p0 = var_i0; + var_i0 = 0u; + var_l6 = var_i0; + } else { + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = instance->w2c_g3; + var_i2 = var_l6; + var_i2 = !(var_i2); + w2c_highlights_f394(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l6 = var_i0; + } else { + var_i0 = var_l5; + var_i1 = instance->w2c_g3; + w2c_highlights_f393(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + } else { + var_i0 = var_l4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_p0 = var_i0; + } else { + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + } + var_i0 = 44u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p3; + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p3; + var_i1 = var_l5; + var_i2 = var_l4; + var_i3 = var_l5; + var_i4 = var_l7; + var_i5 = var_p0; + var_i5 = !(var_i5); + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i0 = w2c_highlights_f111(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p3 = var_i0; + } + } + var_i0 = 0u; + var_l7 = var_i0; + goto var_L0; + } + var_i0 = instance->w2c_g4; + var_l5 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p3; + var_i1 = 63u; + var_i0 &= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i1 = 1u; + var_i0 |= var_i1; + goto var_B1; + } + var_i0 = 0u; + var_i1 = var_l4; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_p0 = var_i0; + var_i0 = var_l4; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + var_p0 = var_i0; + goto var_L0; + } + } + var_i0 = var_p0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_p0 = var_i0; + var_i0 = var_l4; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_p2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 44u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 3u; + var_p0 = var_i0; + var_i0 = 1u; + var_l7 = var_i0; + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p3; + var_i1 = 63u; + var_i0 &= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i1 = 2u; + var_i0 |= var_i1; + goto var_B1; + } + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f109(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = var_p1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = instance->w2c_g4; + w2c_highlights_f393(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 44u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_p3; + var_i1 = 64u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p3; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + var_i0 = w2c_highlights_f111(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p3 = var_i0; + } + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 62u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 33u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p3; + var_i1 = 63u; + var_i0 &= var_i1; + var_i1 = 8u; + var_i0 <<= (var_i1 & 31); + var_i1 = 2u; + var_i0 |= var_i1; + goto var_B1; + } + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L0; + } + var_i0 = var_l4; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l4; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l4; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i2 = instance->w2c_g3; + var_i3 = instance->w2c_g4; + var_i4 = 1u; + var_i3 += var_i4; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + var_i2 = var_l4; + var_i3 = 118u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l4; + var_i3 = 35u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + var_p1 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f108(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p3; + if (var_i0) { + var_i0 = var_p3; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + var_i0 = w2c_highlights_f110(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p3 = var_i0; + } + var_i0 = 1u; + var_p0 = var_i0; + } + goto var_L0; + var_B1:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f396(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + var_i0 = instance->w2c_g7; + var_l4 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13824u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l3 = var_i0; + instance->w2c_g24 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + } + var_l0 = var_i0; + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = var_l0; + var_i1 = 123u; + var_i2 = 60u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 757932348u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l0; + var_i3 = 4u; + var_i2 += var_i3; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l0; + w2c_highlights_f392(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + w2c_highlights_f106(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L2; + } + var_i0 = instance->w2c_g3; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_i0 = var_i0 > var_i1; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i1 = w2c_highlights_f46(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 1u); + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i3 = instance->w2c_g3; + var_i4 = var_l0; + var_i5 = 2u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i4 = var_l0; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4) + 2u); + var_i4 = w2c_highlights_f46(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l0; + w2c_highlights_f392(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = 0u; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 1u; + var_l1 = var_i0; + } + var_i0 = 33u; + var_i1 = var_l0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f108(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i0 = var_l1; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_l0; + var_i0 = w2c_highlights_f103(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + } + var_i0 = 49u; + var_i1 = instance->w2c_g4; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = 0u; + var_i2 = 0u; + var_i3 = var_l2; + var_i0 = w2c_highlights_f395(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f116(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_l0 = var_i0; + goto var_L2; + } + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u); + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = var_l0; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + var_i1 = var_l2; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l0; + w2c_highlights_f392(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 40u; + var_i1 = var_l0; + var_i2 = var_l0; + var_i3 = 2u; + var_i2 += var_i3; + var_l0 = var_i2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l0; + instance->w2c_g4 = var_i0; + var_i0 = 2u; + var_i1 = 0u; + var_i2 = 6u; + var_i3 = 0u; + var_i0 = w2c_highlights_f195(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + } else { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + } + var_l0 = var_i0; + goto var_L2; + var_B3:; + var_i0 = var_l1; + var_i1 = instance->w2c_g3; + w2c_highlights_f392(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + var_i0 = var_l3; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f397(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_L0: + var_i0 = var_p0; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i0 = w2c_highlights_f43(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 40u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 41u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = 59u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i3 = 34u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L0; + var_B1:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f398(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5; + u64 var_j1, var_j2; + var_i0 = instance->w2c_g7; + var_l5 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13824u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l4 = var_i0; + instance->w2c_g24 = var_i0; + } + } + var_L2: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l5; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B3;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l0 = var_i1; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 4u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_l1 = var_i0; + var_i0 = 1u; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L7: + var_i0 = instance->w2c_g4; + var_i1 = 40u; + var_i2 = 59u; + var_i0 = w2c_highlights_f78(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B8;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 0u; + var_i3 = instance->w2c_g3; + var_i4 = instance->w2c_g4; + var_i5 = 1u; + var_i4 += var_i5; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_l3 = var_i1; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_L7; + } + var_i0 = var_l0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l2; + var_i1 = 1u; + var_i0 -= var_i1; + var_l2 = var_i0; + var_i0 = !(var_i0); + if (var_i0) {goto var_B8;} + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + goto var_L7; + var_B8:; + var_i0 = 4u; + var_i1 = var_l1; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = 15144u; + var_i2 = 10555u; + var_i3 = 4u; + w2c_highlights_f64(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 34u; + var_i1 = 0u; + var_i2 = 44u; + w2c_highlights_f53(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 36u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + w2c_highlights_f397(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 58u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 41u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L2; + } + var_i0 = var_l1; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 46u; + w2c_highlights_f397(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = var_l3; + var_l0 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + } + var_i0 = 24u; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = var_l2; + var_i2 = var_i2 < var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B15;} + var_i0 = 24u; + var_i1 = var_l0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 16777215u; + var_i1 &= var_i2; + var_l1 = var_i1; + var_i2 = 6712937u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l1; + var_i3 = 7233902u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l2; + var_i3 = var_l0; + var_i2 -= var_i3; + var_l1 = var_i2; + var_i3 = 3u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B15;} + var_i0 = var_l1; + var_i1 = 6u; + var_i0 = var_i0 > var_i1; + var_i1 = var_l0; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 132148534075758ull; + var_j1 ^= var_j2; + var_j2 = 16ull; + var_j1 <<= (var_j2 & 63); + var_i1 = !(var_j1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = 6u; + var_i0 += var_i1; + var_l0 = var_i0; + var_L18: + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = w2c_highlights_f45(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 24u; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 += var_i2; + var_l0 = var_i1; + var_i2 = var_l2; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B15;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l0; + var_i2 = var_l0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 95u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = var_l2; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_L18;} + } + } + var_i0 = 56u; + var_i1 = var_l3; + var_i2 = var_l2; + var_i3 = 27776u; + var_i4 = 7u; + var_i5 = 28u; + var_i1 = w2c_highlights_f75(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i1; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B15;} + var_i0 = 18u; + var_i1 = var_l0; + var_i2 = 2u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B15;} + var_i0 = 17u; + var_i1 = var_l0; + if (var_i1) {goto var_B15;} + var_i0 = var_l3; + var_l0 = var_i0; + var_L20: + var_i0 = var_l0; + var_i1 = var_l2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 14u; + var_i1 = var_l0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B15;} + var_i0 = var_l0; + var_i1 = 1u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L20; + } + var_i0 = 17u; + var_B15:; + var_i1 = var_l3; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L2; + var_B3:; + var_i0 = var_l4; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f399(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0; + v128 var_l10 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + u64 var_j2, var_j3; + var_i0 = instance->w2c_g7; + var_l8 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13824u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l6 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + } + } else { + var_i0 = 0u; + } + } + var_l3 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l8; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = var_l5; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l5; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 42u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 10799u; + var_i1 = 12074u; + var_i2 = 5u; + var_i3 = 4u; + var_i4 = var_l5; + var_i5 = 42u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l5; + var_i6 = 33u; + var_i5 = var_i5 == var_i6; + var_i4 |= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f71(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f46(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36u; + w2c_highlights_f7(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_l0 = var_i1; + var_i2 = 27872u; + var_i3 = 15u; + var_i4 = 44u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + if (var_i0) { + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = var_l2; + var_i1 -= var_i2; + var_l1 = var_i1; + var_i2 = 4u; + var_i1 = var_i1 < var_i2; + if (var_i1) {goto var_B12;} + var_i0 = 56u; + var_i1 = var_l1; + var_i2 = 9u; + var_i1 = var_i1 >= var_i2; + var_i2 = var_l2; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 6874026255041717620ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + if (var_i1) {goto var_B12;} + var_i0 = 0u; + var_i1 = var_l0; + var_i2 = 1u; + var_i1 -= var_i2; + var_l9 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l5 = var_i1; + var_i2 = 105u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l5; + var_i3 = 117u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l2; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 16777215u; + var_i2 &= var_i3; + var_l7 = var_i2; + var_i3 = 6514038u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = 102u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l5; + var_i4 = 104u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i1 |= var_i2; + if (var_i1) { + var_i1 = var_l1; + var_i2 = 1u; + var_i1 -= var_i2; + var_l1 = var_i1; + var_i1 = var_l9; + } else { + var_i1 = var_l0; + } + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 50u; + var_i1 -= var_i2; + var_i2 = 2u; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B12;} + var_i0 = 56u; + var_i1 = var_l1; + var_i2 = 4u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l7; + var_i3 = 6514038u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B12;} + var_i0 = 56u; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 120u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 3u); + var_i3 = 50u; + var_i2 -= var_i3; + var_i3 = 2u; + var_i2 = var_i2 <= var_i3; + var_i1 &= var_i2; + var_i2 = var_l7; + var_i3 = 7627117u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B12;} + var_i0 = 0u; + var_B12:; + var_l1 = var_i0; + var_i1 = 4294967295u; + var_i2 = var_l1; + var_i0 = var_i2 ? var_i0 : var_i1; + goto var_B10; + } + var_i0 = var_l1; + var_B10:; + var_l1 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = var_l1; + var_i1 = 255u; + var_i0 &= var_i1; + var_l3 = var_i0; + var_i0 = var_l1; + var_i1 = 8u; + var_i0 >>= (var_i1 & 31); + var_l4 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = var_l4; + if (var_i0) { + var_i0 = 15u; + var_i1 = 55u; + var_i2 = var_l4; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + } else { + var_i0 = var_l1; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l3; + if (var_i0) { + var_i0 = 16u; + } else { + var_i0 = 55u; + var_i1 = 14u; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } else { + var_i0 = var_l3; + if (var_i0) { + var_i0 = 29u; + } else { + var_i0 = var_l2; + var_i1 = var_l0; + var_i0 = w2c_highlights_f82(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 6u; + } else { + var_i0 = 55u; + var_i1 = 58u; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 65u; + var_i2 -= var_i3; + var_i3 = 25u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } + } + } + var_l3 = var_i0; + } + } + var_i0 = var_l3; + var_i1 = var_l2; + var_i2 = var_l0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i3 = 46u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = 0u; + w2c_highlights_f50(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l0; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l3 = var_i0; + var_i0 = 0u; + var_l4 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l3 = var_i0; + goto var_L3; + } + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 6288u); + var_i1 = 4u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } else { + var_i0 = var_l0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3984u); + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = var_l0; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l0; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + } + } + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l3 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l6; + if (var_i0) { + var_i0 = 13824u; + instance->w2c_g32 = var_i0; + var_i0 = 13824u; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13828u; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f400(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 95u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 32u; + var_i1 |= var_i2; + var_i2 = 97u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f401(w2c_highlights* instance, u32 var_p0) { + u32 var_l2 = 0; + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + v128 var_o1, var_o2, var_o3, var_o4; + var_i0 = instance->w2c_g3; + var_L0: + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = var_p0; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l1 = var_o1; + var_i2 = 32u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_i2 = 97u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_i8x16_sub(var_o1, var_o2); + var_i2 = 25u; + var_o2 = simde_wasm_i8x16_splat(var_i2); + var_o1 = simde_wasm_u8x16_le(var_o1, var_o2); + var_o2 = var_l1; + var_i3 = 48u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_i8x16_sub(var_o2, var_o3); + var_i3 = 9u; + var_o3 = simde_wasm_i8x16_splat(var_i3); + var_o2 = simde_wasm_u8x16_le(var_o2, var_o3); + var_o3 = var_l1; + var_i4 = 95u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_o2 = simde_wasm_v128_or(var_o2, var_o3); + var_o1 = simde_wasm_v128_or(var_o1, var_o2); + var_i1 = v128_i8x16_bitmask(var_o1); + var_i2 = 65535u; + var_i1 ^= var_i2; + var_l2 = var_i1; + if (var_i1) { + var_i1 = var_p0; + var_i2 = var_l2; + var_i2 = I32_CTZ(var_i2); + var_i1 += var_i2; + } else { + var_i1 = var_p0; + var_i2 = 16u; + var_i1 += var_i2; + var_p0 = var_i1; + goto var_L0; + } + } else { + var_i1 = var_p0; + } + var_p0 = var_i1; + var_i2 = var_p0; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f402(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i0 = w2c_highlights_f45(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = var_p1; + var_i1 = var_i1 < var_i2; + var_i2 = var_p1; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f403(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_l2 = var_i0; + var_L0: + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i0 = w2c_highlights_f402(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + var_i0 = var_p0; + var_i1 = var_l2; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 95u; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = var_p1; + var_i1 = w2c_highlights_f402(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_l3; + var_p0 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p0; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f404(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_L0: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i2 = var_p0; + var_i3 = 1u; + var_i4 = 1u; + var_i0 = w2c_highlights_f5(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = var_p0; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + goto var_B1; + } + var_i0 = var_l3; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l3; + var_i2 = 92u; + var_i1 = var_i1 != var_i2; + var_i0 |= var_i1; + if (var_i0) {goto var_B1;} + var_i0 = var_p1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 10u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l3; + var_i2 = 13u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_l3; + var_i1 = 120u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 2u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + } + var_i0 = var_l3; + var_i1 = 117u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = 6u; + var_i0 = w2c_highlights_f10(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 125u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l2; + } + } else { + var_i0 = var_l2; + } + } else { + var_i0 = var_l2; + } + } else { + var_i0 = var_l2; + } + var_i1 = instance->w2c_g3; + var_i0 = w2c_highlights_f9(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = 45u; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + goto var_L0; + var_B1:; + var_i0 = var_p1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f405(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, + var_l8 = 0, var_l9 = 0, var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, + var_l16 = 0, var_l17 = 0, var_l18 = 0; + u64 var_l19 = 0; + v128 var_l20 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7; + u64 var_j0, var_j1, var_j2, var_j3, var_j4, var_j5; + var_i0 = instance->w2c_g7; + var_l18 = var_i0; + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 62304u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l17 = var_i0; + var_i0 = 62308u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = 62312u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = 62316u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i0 = 62320u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l14 = var_i0; + var_i0 = 62324u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l15 = var_i0; + var_i0 = 62328u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l7 = var_i0; + var_i0 = 62332u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l16 = var_i0; + var_i0 = 62336u; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l19 = var_j0; + var_i0 = 62344u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l8 = var_i0; + var_i0 = 62352u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l11 = var_i0; + var_i0 = 62356u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l12 = var_i0; + var_i0 = 62348u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + } else { + w2c_highlights_f23(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g22; + var_i1 = instance->w2c_g24; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 13832u; + instance->w2c_g32 = var_i0; + var_i0 = 1u; + var_l17 = var_i0; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g23; + if (var_i0) { + var_i0 = 0u; + } else { + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l10 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l5 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_l14 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + var_l15 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l7 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l16 = var_i0; + var_i0 = instance->w2c_g32; + var_j0 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + var_l19 = var_j0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 40u); + var_l8 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 48u); + var_l11 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 52u); + var_l12 = var_i0; + var_i0 = instance->w2c_g32; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 44u); + } + } else { + var_i0 = 0u; + } + } + var_l0 = var_i0; + var_L3: + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g5; + var_i0 = var_i0 >= var_i1; + var_i1 = 0u; + var_i2 = var_l18; + var_i0 = var_i2 ? var_i0 : var_i1; + if (var_i0) { + var_i0 = 62304u; + var_i1 = var_l17; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62308u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62312u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62316u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62320u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62324u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62328u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62332u; + var_i1 = var_l16; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62336u; + var_j1 = var_l19; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = 62344u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62348u; + var_i1 = var_l0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62352u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 62356u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + instance->w2c_g6 = var_i0; + goto var_Bfunc; + } + var_i0 = instance->w2c_g4; + w2c_highlights_f6(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g4; + w2c_highlights_f22(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B4;} + var_i0 = instance->w2c_g4; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i1; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 5u; + var_i2 = 4u; + var_i3 = instance->w2c_g4; + var_i4 = 2u; + var_i3 += var_i4; + var_i3 = w2c_highlights_f83(instance, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i3; + var_i4 = 47u; + var_i3 = var_i3 == var_i4; + var_i4 = instance->w2c_g4; + var_i5 = 3u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i5 = 47u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i4 = var_l4; + var_i5 = 33u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_L3; + } + var_i0 = 0u; + var_i1 = var_l11; + var_i2 = var_l11; + var_i3 = var_l1; + var_i4 = 58u; + var_i3 = var_i3 != var_i4; + var_l4 = var_i3; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = 0u; + var_i1 = var_l15; + var_i2 = var_l4; + var_i3 = var_l15; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l15 = var_i0; + var_i0 = var_l9; + var_i1 = var_l10; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i1 = w2c_highlights_f400(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l1; + var_i3 = 64u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l6; + var_i4 = 34u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i1 |= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l12; + var_i2 = var_l12; + var_i3 = var_l1; + var_i4 = 40u; + var_i3 = var_i3 != var_i4; + var_l4 = var_i3; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l12 = var_i0; + var_i0 = var_l4; + var_i1 = instance->w2c_g41; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g41 = var_i0; + } + var_i0 = 0u; + var_i1 = var_l8; + var_i2 = var_l8; + var_i3 = var_l6; + var_i4 = 124u; + var_i3 = var_i3 != var_i4; + var_i4 = var_l6; + var_i5 = 61u; + var_i4 = var_i4 != var_i5; + var_i3 &= var_i4; + var_i4 = var_l1; + var_i5 = 124u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i3 = I32_CLZ(var_i3); + var_i4 = 5u; + var_i3 >>= (var_i4 & 31); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l1; + var_i1 = 92u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 92u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = 44u; + w2c_highlights_f60(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 34u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 39u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 44u; + w2c_highlights_f404(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 64u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 34u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 29u; + var_i1 = 55u; + var_i2 = 22u; + var_i3 = var_l9; + if (var_i3) { + var_i3 = 1u; + instance->w2c_g41 = var_i3; + var_i3 = 15u; + } else { + var_i3 = 58u; + } + var_i4 = var_l10; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l5; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 34u; + var_i1 = var_l0; + w2c_highlights_f404(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l14 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + } + var_i0 = var_l6; + var_i0 = w2c_highlights_f400(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l1; + var_i2 = 64u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f401(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 20u; + var_i1 = 14u; + var_i2 = instance->w2c_g4; + var_i3 = var_l2; + var_i2 -= var_i3; + var_l0 = var_i2; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l2; + var_j3 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_j4 = 32776920251590976ull; + var_j3 ^= var_j4; + var_j4 = 8ull; + var_j3 <<= (var_j4 & 63); + var_i3 = !(var_j3); + var_i2 &= var_i3; + var_i3 = var_l0; + var_i4 = 8u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l2; + var_j4 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_j5 = 8390891584405201728ull; + var_i4 = var_j4 == var_j5; + var_i3 &= var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 10u; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 48u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 16u; + var_i1 = 8u; + var_i2 = 2u; + var_i3 = 10u; + var_i4 = var_l2; + var_i5 = 1u; + var_i4 += var_i5; + var_i4 = w2c_highlights_f83(instance, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i4; + var_i5 = 98u; + var_i4 = var_i4 == var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l0; + var_i4 = 111u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = 120u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + } + var_i0 = var_l2; + var_i1 = 2u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i0 = w2c_highlights_f402(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l0; + var_i2 = 10u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_l0; + var_i0 = w2c_highlights_f403(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } else { + var_i0 = 10u; + var_l0 = var_i0; + var_i0 = var_l2; + var_i1 = 10u; + var_i0 = w2c_highlights_f403(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = var_l0; + var_i1 = w2c_highlights_f402(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 10u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l0; + var_i3 = 16u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l0; + var_i0 = w2c_highlights_f403(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } + var_i0 = var_l0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 32u; + var_i1 |= var_i2; + var_l4 = var_i1; + var_i2 = 101u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = 16u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i3 = 112u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 43u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 45u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f44(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 10u; + var_i0 = w2c_highlights_f403(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + } + } + var_i0 = 24u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f400(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f401(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = var_l2; + var_i1 = instance->w2c_g4; + var_l6 = var_i1; + var_i2 = 28064u; + var_i3 = 31u; + var_i4 = 74u; + var_i0 = w2c_highlights_f76(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 < (s32)var_i1); + if (var_i0) { + var_i0 = var_l6; + var_i1 = var_l2; + var_i0 -= var_i1; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 60u; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 99u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 95u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + if (var_i1) {goto var_B22;} + var_i0 = 4294967295u; + goto var_B22; + } + var_i0 = 17u; + var_i1 = var_l6; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = 8u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l2; + var_j2 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_j3 = 7308613719115525987ull; + var_i2 = var_j2 == var_j3; + var_i1 &= var_i2; + if (var_i1) {goto var_B22;} + var_i0 = var_l2; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 105u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 117u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_L26: + var_i0 = var_l3; + var_i1 = var_l6; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 4294967295u; + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f44(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + if (var_i1) {goto var_B22;} + var_i0 = 4294967295u; + var_i1 = var_l1; + var_i2 = 6553u; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B22;} + var_i0 = 4294967295u; + var_i1 = var_l3; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 48u; + var_i1 -= var_i2; + var_i2 = var_l1; + var_i3 = 10u; + var_i2 *= var_i3; + var_i1 += var_i2; + var_l1 = var_i1; + var_i2 = 65535u; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B22;} + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + goto var_L26; + } + var_i0 = 56u; + goto var_B22; + } + var_i0 = 4294967295u; + goto var_B22; + } + var_i0 = var_l4; + var_B22:; + var_l4 = var_i0; + var_i1 = 0u; + var_i0 = (u32)((s32)var_i0 >= (s32)var_i1); + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l9; + var_i2 = var_l4; + var_i3 = 8u; + var_i2 >>= (var_i3 & 31); + var_l0 = var_i2; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l9 = var_i0; + var_i0 = 1u; + var_i1 = var_l14; + var_i2 = var_l0; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l14 = var_i0; + var_i0 = 1u; + var_i1 = var_l12; + var_i2 = var_l0; + var_i3 = 4u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l0; + var_i4 = 5u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l12 = var_i0; + var_i0 = 1u; + var_i1 = var_l11; + var_i2 = var_l0; + var_i3 = 7u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l11 = var_i0; + var_i0 = 1u; + var_i1 = var_l8; + var_i2 = var_l0; + var_i3 = 8u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = var_l4; + var_i1 = 255u; + var_i0 &= var_i1; + var_l4 = var_i0; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = 0u; + var_i1 = var_l5; + var_i2 = var_l4; + var_i3 = 56u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l4; + var_i4 = 7u; + var_i3 = var_i3 == var_i4; + var_i2 |= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + goto var_L3; + } + var_i0 = 16u; + var_i1 = 29u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i2; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i2; + var_i3 = 40u; + var_i2 = var_i2 == var_i3; + var_l4 = var_i2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 55u; + var_i2 = 22u; + var_i3 = var_l9; + if (var_i3) { + var_i3 = 1u; + instance->w2c_g41 = var_i3; + var_i3 = 15u; + } else { + var_i3 = 58u; + } + var_i4 = var_l10; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l5; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l4; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 14u; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 65u; + var_i1 -= var_i2; + var_i2 = 25u; + var_i1 = var_i1 <= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 6u; + var_i1 = 55u; + var_i2 = var_l2; + var_i3 = instance->w2c_g4; + var_i2 = w2c_highlights_f82(instance, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + } + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l14; + var_i1 = !(var_i1); + var_i0 |= var_i1; + var_i1 = var_l6; + var_i2 = 58u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i0 = w2c_highlights_f58(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + var_i1 = 46u; + var_i0 = var_i0 != var_i1; + var_i1 = var_l0; + var_i2 = 91u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + } else { + var_i0 = 0u; + } + if (var_i0) { + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f400(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l7; + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l1; + var_i1 = w2c_highlights_f401(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i1; + var_i2 = 28064u; + var_i3 = 31u; + var_i4 = 74u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i1 = 15u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_l0 = var_i0; + var_i0 = var_l4; + var_i0 = w2c_highlights_f73(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = w2c_highlights_f83(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f400(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l1; + var_i1 = var_l1; + var_i1 = w2c_highlights_f401(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 28064u; + var_i3 = 31u; + var_i4 = 74u; + var_i0 = w2c_highlights_f75(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = var_l5; + } + var_l5 = var_i0; + } + } + var_i0 = var_l7; + var_i0 = !(var_i0); + var_i1 = var_l0; + var_i1 = !(var_i1); + var_i2 = var_l5; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i2 = var_l5; + var_i3 = 5u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = var_l1; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 123u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l15 = var_i0; + var_i0 = 22u; + } else { + var_i0 = var_l7; + if (var_i0) { + var_i0 = 59u; + var_i1 = var_l3; + var_i2 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = instance->w2c_g39; + var_i2 &= var_i3; + var_i3 = instance->w2c_g38; + var_i3 = !(var_i3); + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 29u; + } + } + var_l3 = var_i0; + } + var_i0 = 24u; + var_i1 = var_l3; + var_i2 = var_l14; + var_i2 = !(var_i2); + var_i3 = var_l3; + var_i4 = 58u; + var_i3 = var_i3 == var_i4; + var_i2 &= var_i3; + var_i3 = var_l2; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3)); + var_i4 = 16777215u; + var_i3 &= var_i4; + var_l0 = var_i3; + var_i4 = 7233902u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l0; + var_i5 = 6712937u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i4 = instance->w2c_g4; + var_i5 = var_l2; + var_i4 -= var_i5; + var_i5 = 3u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l5 = var_i0; + var_i0 = 0u; + var_l14 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 3728u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_j0 = var_l19; + var_j1 = 1ull; + var_i2 = var_l7; + var_i3 = 1u; + var_i2 += var_i3; + var_l7 = var_i2; + var_j2 = (u64)(var_i2); + var_j1 <<= (var_j2 & 63); + var_j0 |= var_j1; + var_j1 = var_l19; + var_i2 = var_l12; + var_j0 = var_i2 ? var_j0 : var_j1; + var_l19 = var_j0; + var_i0 = 0u; + var_l12 = var_i0; + var_i0 = 0u; + var_l9 = var_i0; + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g36 = var_i0; + var_i0 = instance->w2c_g41; + if (var_i0) { + w2c_highlights_f38(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + instance->w2c_g41 = var_i0; + var_i0 = 1u; + instance->w2c_g39 = var_i0; + } + var_i0 = var_l1; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l7; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_j0 = var_l19; + var_i1 = var_l7; + var_j1 = (u64)(var_i1); + var_j0 >>= (var_j1 & 63); + var_j1 = 1ull; + var_j0 &= var_j1; + var_i0 = (u32)(var_j0); + var_l8 = var_i0; + var_j0 = var_l19; + var_j1 = 18446744073709551614ull; + var_i2 = var_l7; + var_j2 = (u64)(var_i2); + var_j1 = I64_ROTL(var_j1, var_j2); + var_j0 &= var_j1; + var_l19 = var_j0; + var_i0 = var_l7; + var_i1 = 1u; + var_i0 -= var_i1; + var_l7 = var_i0; + } + var_i0 = var_l1; + var_i1 = 40u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g39 = var_i0; + var_i0 = var_l1; + var_i1 = 41u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g36; + if (var_i0) { + var_i0 = instance->w2c_g36; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g36 = var_i0; + } + } else { + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 91u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l1; + var_i2 = 123u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g38 = var_i0; + } else { + var_i0 = instance->w2c_g38; + if (var_i0) { + var_i0 = instance->w2c_g38; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g38 = var_i0; + } + } + } + } + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 61u; + var_i0 = var_i0 == var_i1; + var_l4 = var_i0; + var_i1 = var_l6; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_l0 = var_i1; + var_i0 &= var_i1; + var_i1 = var_l0; + var_i2 = var_l1; + var_i3 = 45u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l8; + var_i2 = var_l4; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 46u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 2u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 60u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + } + var_i0 = var_l6; + var_i1 = 42u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i2 = 63u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l6; + var_i2 = 46u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + } + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_l0 = var_i0; + var_i0 = 0u; + instance->w2c_g39 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i1 = 58u; + var_i0 = var_i0 == var_i1; + var_l0 = var_i0; + var_i1 = var_l1; + var_i2 = 44u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = var_l0; + if (var_i0) { + var_i0 = var_l11; + if (var_i0) { + var_i0 = 1u; + var_l10 = var_i0; + var_i0 = 0u; + var_l11 = var_i0; + } else { + var_i0 = var_l15; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 1u; + var_i1 = var_l5; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f73(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 40u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l5 = var_i0; + } + } + } + var_i0 = 0u; + var_l15 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 35u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 44u; + var_i0 = var_i0 == var_i1; + instance->w2c_g39 = var_i0; + var_i0 = w2c_highlights_f37(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = instance->w2c_g38; + var_i1 = !(var_i1); + var_i0 &= var_i1; + var_i1 = var_l1; + var_i2 = 59u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + w2c_highlights_f39(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + goto var_L3; + } + var_i0 = var_l16; + var_i1 = var_l8; + var_i2 = var_l6; + var_i3 = 124u; + var_i2 = var_i2 != var_i3; + var_i3 = var_l6; + var_i4 = 61u; + var_i3 = var_i3 != var_i4; + var_i2 &= var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i1 = var_l1; + var_i2 = 124u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 32u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l16; + var_i0 = !(var_i0); + var_l16 = var_i0; + var_i0 = 0u; + var_l8 = var_i0; + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + } + var_i0 = var_l1; + var_i0 = w2c_highlights_f244(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_L61: + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l13 = var_i0; + var_i1 = 45u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l13; + var_i2 = 61u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g4; + var_i2 = 1u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f83(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + var_i2 = 62u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l13; + var_i2 = 47u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l3; + var_i3 = 47u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = 3u; + var_i1 = 2u; + var_i2 = instance->w2c_g4; + var_i3 = 2u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i2; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = 2u; + var_i2 = 2u; + var_i3 = 1u; + var_i4 = var_l13; + var_i5 = 63u; + var_i4 = var_i4 != var_i5; + var_i5 = var_l13; + var_i6 = 126u; + var_i5 = var_i5 != var_i6; + var_i4 &= var_i5; + var_i5 = var_l3; + var_i6 = 61u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i3 = var_l13; + var_i4 = 42u; + var_i3 = var_i3 == var_i4; + var_l6 = var_i3; + var_i4 = var_l3; + var_i5 = 42u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i4 = var_l13; + var_i5 = 43u; + var_i4 = var_i4 == var_i5; + var_l4 = var_i4; + var_i5 = var_l3; + var_i6 = 43u; + var_i5 = var_i5 == var_i6; + var_i4 &= var_i5; + var_i5 = var_l3; + var_i6 = 124u; + var_i5 = var_i5 == var_i6; + var_l0 = var_i5; + var_i6 = var_l13; + var_i7 = 124u; + var_i6 = var_i6 == var_i7; + var_i5 &= var_i6; + var_i4 |= var_i5; + var_i3 |= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l6; + var_i3 = var_l13; + var_i4 = 45u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l4; + var_i3 |= var_i4; + var_i2 |= var_i3; + var_i3 = var_l0; + var_i4 = var_l3; + var_i5 = 37u; + var_i4 = var_i4 == var_i5; + var_i3 |= var_i4; + var_i2 &= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l13; + var_i1 = 60u; + var_i0 = var_i0 == var_i1; + var_i1 = var_l3; + var_i2 = 60u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 3u; + var_i1 = 2u; + var_i2 = var_l1; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l0 = var_i0; + var_i0 = var_l1; + var_i1 = 124u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 4u; + var_i1 = 3u; + var_i2 = instance->w2c_g4; + var_i3 = 3u; + var_i2 += var_i3; + var_i2 = w2c_highlights_f83(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 61u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = var_l0; + } + var_l0 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i1 = 3u; + var_i2 = 2u; + var_i3 = var_l1; + var_i4 = 61u; + var_i3 = var_i3 == var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l0; + var_i3 = var_l13; + var_i4 = 62u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l3; + var_i5 = 62u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 < var_i1; + var_i1 = instance->w2c_g4; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f244(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 &= var_i1; + if (var_i0) {goto var_L61;} + } + var_i0 = 25u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g4; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + var_i1 = var_l2; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = 0u; + var_l0 = var_i0; + goto var_L3; + var_B4:; + var_i0 = var_l17; + if (var_i0) { + var_i0 = 13832u; + instance->w2c_g32 = var_i0; + var_i0 = 13832u; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13836u; + var_i1 = var_l10; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13840u; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13844u; + var_i1 = var_l14; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13848u; + var_i1 = var_l15; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13852u; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13856u; + var_i1 = var_l16; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13864u; + var_j1 = var_l19; + i64_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_j1); + var_i0 = 13872u; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13876u; + var_i1 = var_l0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13880u; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 13884u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 0u; + instance->w2c_g24 = var_i0; + } + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f406(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 0u; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g3; + instance->w2c_g4 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f407(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i1 = 35u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p1; + w2c_highlights_f152(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 2u; + var_i1 = var_p1; + w2c_highlights_f192(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 72u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = var_p1; + w2c_highlights_f192(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 74u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p1; + w2c_highlights_f194(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 73u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 7u; + var_i1 = var_p1; + w2c_highlights_f192(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f408(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7; + var_i0 = instance->w2c_g30; + if (var_i0) { + var_i0 = instance->w2c_g30; + var_p0 = var_i0; + var_i1 = 9u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 9u; + var_i0 = w2c_highlights_f120(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B1; + } + var_i0 = var_p0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g28; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g26; + var_i2 = instance->w2c_g27; + var_i0 = w2c_highlights_f100(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = instance->w2c_g27; + var_i0 = w2c_highlights_f101(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = !(var_i0); + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g2; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = 0u; + instance->w2c_g30 = var_i0; + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + } + goto var_B1; + } + var_i0 = var_p0; + var_i1 = 11u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g27; + var_i1 = 15u; + var_i0 &= var_i1; + var_i1 = instance->w2c_g27; + var_i2 = 4u; + var_i1 >>= (var_i2 & 31); + var_i2 = instance->w2c_g28; + var_i3 = instance->w2c_g26; + var_i0 = w2c_highlights_f395(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i1 = 3u; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = 8u; + var_i1 >>= (var_i2 & 31); + var_i0 = w2c_highlights_f119(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_B1; + } + var_i0 = var_p0; + var_i1 = 4294967294u; + var_i0 &= var_i1; + var_i1 = 12u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g3; + var_i1 = instance->w2c_g26; + var_i1 = !(var_i1); + if (var_i1) { + var_i1 = instance->w2c_g4; + var_i1 = w2c_highlights_f122(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g3 = var_i1; + } + var_i1 = 0u; + instance->w2c_g44 = var_i1; + var_i1 = var_p0; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_l2 = var_i1; + var_i2 = 12u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f120(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + instance->w2c_g3 = var_i0; + var_i0 = instance->w2c_g44; + var_p0 = var_i0; + var_i0 = 0u; + instance->w2c_g44 = var_i0; + var_i0 = instance->w2c_g4; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 123u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g4; + var_i2 = instance->w2c_g3; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + var_i1 = var_p0; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l2; + w2c_highlights_f125(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + } else { + var_i0 = var_l3; + } + goto var_B1; + } + var_i0 = instance->w2c_g3; + var_l2 = var_i0; + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i0 = instance->w2c_g30; + var_l1 = var_i0; + var_i1 = 6u; + var_i0 -= var_i1; + var_i1 = 2u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g26; + var_p0 = var_i0; + var_i0 = 3u; + instance->w2c_g47 = var_i0; + var_i0 = 1u; + instance->w2c_g61 = var_i0; + var_i0 = 2u; + var_i1 = 1u; + var_i2 = var_l1; + var_i3 = 6u; + var_i2 = var_i2 == var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l2 = var_i0; + instance->w2c_g64 = var_i0; + var_i0 = 0u; + instance->w2c_g65 = var_i0; + var_i0 = 0u; + w2c_highlights_f190(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = instance->w2c_g65; + var_i1 = !(var_i1); + if (var_i1) {goto var_B10;} + var_i0 = instance->w2c_g4; + var_l3 = var_i0; + var_i1 = var_l2; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = 40u; + var_i1 = 32u; + var_i2 = var_l1; + var_i3 = 7u; + var_i2 = var_i2 <= var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_i1 = var_l3; + var_i2 = var_l2; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + instance->w2c_g30 = var_i0; + w2c_highlights_f230(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l1; + var_i2 = 7u; + var_i1 = var_i1 != var_i2; + w2c_highlights_f124(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + goto var_B10; + } + var_i0 = 0u; + goto var_B10; + } + var_i0 = var_l1; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + instance->w2c_g68 = var_i0; + var_i0 = w2c_highlights_f155(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f171(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p0; + instance->w2c_g68 = var_i0; + } else { + var_i0 = var_l1; + var_i1 = var_p0; + var_i2 = var_l2; + w2c_highlights_f231(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = instance->w2c_g68; + var_p0 = var_i0; + var_i0 = 0u; + instance->w2c_g68 = var_i0; + var_i0 = 1u; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 = var_i1 == var_i2; + if (var_i1) {goto var_B10;} + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + instance->w2c_g30 = var_i0; + w2c_highlights_f230(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + goto var_B10; + } + var_i0 = var_l1; + var_i1 = 2u; + var_i0 = var_i0 <= var_i1; + var_i1 = var_l1; + var_i2 = 14u; + var_i1 = var_i1 >= var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_L16: + var_i0 = var_p0; + var_i1 = 60u; + var_i0 = w2c_highlights_f79(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = var_p0; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B17;} + var_i0 = var_p0; + var_i1 = var_l1; + var_i0 = w2c_highlights_f104(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = var_p0; + } else { + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L16; + } + var_l2 = var_i0; + var_B17:; + } else { + var_L19: + var_i0 = instance->w2c_g3; + var_i1 = var_p0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i0; + var_i1 = var_p0; + var_i0 -= var_i1; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 2960685u; + var_i1 ^= var_i2; + var_i2 = 8u; + var_i1 <<= (var_i2 & 31); + var_i1 = !(var_i1); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + var_l3 = var_i0; + var_i0 = var_p0; + } else { + var_i0 = var_l4; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + goto var_L19; + } + } else { + var_i0 = var_l2; + } + var_l2 = var_i0; + } + var_i0 = var_l1; + var_i1 = instance->w2c_g4; + var_i2 = var_l2; + w2c_highlights_f231(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + var_i1 = var_l3; + var_i1 = !(var_i1); + if (var_i1) {goto var_B10;} + var_i0 = var_l2; + instance->w2c_g4 = var_i0; + var_i0 = 0u; + instance->w2c_g30 = var_i0; + w2c_highlights_f230(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + var_i1 = 3u; + var_i0 -= var_i1; + var_i1 = 1u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f204(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f205(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i0 = 40u; + var_i1 = instance->w2c_g4; + var_i2 = var_p0; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g4 = var_i0; + } + var_i0 = 0u; + var_B10:; + var_B1:; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 59u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + var_i1 = instance->w2c_g25; + var_i2 = 10u; + var_i1 = var_i1 != var_i2; + if (var_i1) {goto var_B24;} + var_i0 = instance->w2c_g26; + var_i1 = instance->w2c_g27; + var_p0 = var_i1; + var_i2 = 1u; + var_i1 &= var_i2; + var_i2 = var_p0; + var_i3 = 1u; + var_i2 >>= (var_i3 & 31); + var_i3 = 1u; + var_i2 &= var_i3; + var_i3 = var_p0; + var_i4 = 2u; + var_i3 >>= (var_i4 & 31); + var_i4 = 1u; + var_i3 &= var_i4; + var_l1 = var_i3; + var_i4 = var_l1; + var_i5 = 0u; + var_i6 = instance->w2c_g4; + var_i7 = instance->w2c_g28; + var_i0 = w2c_highlights_f293(instance, var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = 2u; + var_i0 >>= (var_i1 & 31); + instance->w2c_g28 = var_i0; + var_i0 = var_l1; + var_i1 = 3u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + goto var_B24; + } + var_i0 = 1u; + var_i1 = var_p0; + var_i2 = 2u; + var_i1 >>= (var_i2 & 31); + var_i2 = 1u; + var_i1 &= var_i2; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 = var_i2 == var_i3; + var_i1 |= var_i2; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g3; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) {goto var_B24;} + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + var_B24:; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 56u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g80; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + var_p0 = var_i0; + var_i0 = instance->w2c_g25; + var_i1 = 14u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + var_i1 = instance->w2c_g4; + var_i2 = 12416u; + var_i3 = instance->w2c_g26; + var_i1 = w2c_highlights_f361(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i1) { + var_i1 = 0u; + instance->w2c_g25 = var_i1; + var_i1 = 0u; + goto var_B29; + } + var_i1 = 1u; + var_B29:; + if (var_i1) {goto var_B27;} + var_i0 = 1u; + var_p0 = var_i0; + } + var_i0 = 0u; + var_i1 = instance->w2c_g25; + var_i2 = 15u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = 1u; + var_i2 = instance->w2c_g4; + var_i2 = w2c_highlights_f362(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = !(var_i2); + if (var_i2) {var_i0 = var_i1; goto var_B27;} + var_i1 = 0u; + instance->w2c_g25 = var_i1; + var_i1 = 1u; + } else { + var_i1 = var_p0; + } + var_i1 = !(var_i1); + if (var_i1) {goto var_B27;} + var_i0 = 1u; + w2c_highlights_f363(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g4; + var_i0 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 15935u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g3; + var_i2 = instance->w2c_g4; + var_i3 = 1u; + var_i2 += var_i3; + var_i1 = var_i1 > var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = 2u; + var_i0 += var_i1; + instance->w2c_g4 = var_i0; + var_i0 = 27u; + var_i1 = var_p0; + var_i2 = instance->w2c_g4; + w2c_highlights_f21(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2u; + instance->w2c_g80 = var_i0; + var_i0 = 0u; + goto var_B27; + } + var_i0 = 1u; + var_B27:; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 49u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f225(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 79u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g25; + var_i2 = 11u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f199(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g25; + var_i2 = 12u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g26; + if (var_i0) { + var_i0 = instance->w2c_g26; + var_i0 = w2c_highlights_f233(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g26 = var_i0; + var_i0 = 1u; + var_i1 = instance->w2c_g26; + if (var_i1) {goto var_B36;} + } + var_i0 = instance->w2c_g27; + if (var_i0) { + var_i0 = 1u; + var_i1 = w2c_highlights_f234(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = !(var_i1); + if (var_i1) {goto var_B36;} + var_i0 = 0u; + instance->w2c_g27 = var_i0; + } + var_i0 = instance->w2c_g4; + var_i0 = w2c_highlights_f236(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + goto var_B36; + } + var_i0 = 1u; + var_B36:; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 71u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g25; + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g26; + var_i1 = 39u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g29; + var_i1 = instance->w2c_g4; + var_i0 = w2c_highlights_f390(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i0 = 1u; + var_i1 = instance->w2c_g29; + var_i2 = instance->w2c_g4; + var_i3 = instance->w2c_g27; + var_i0 = w2c_highlights_f387(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_p0 = var_i0; + var_i0 = instance->w2c_g4; + var_i1 = instance->w2c_g3; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + instance->w2c_g27 = var_i0; + var_i0 = 1u; + goto var_B41; + } + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + var_B41:; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f409(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_memory.pages; + var_i1 = 16u; + var_i0 <<= (var_i1 & 31); + var_l1 = var_i0; + var_i1 = var_p0; + var_i2 = 16u; + var_i1 += var_i2; + var_p0 = var_i1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l1; + var_i0 -= var_i1; + var_i1 = 16u; + var_i0 >>= (var_i1 & 31); + var_i1 = 1u; + var_i0 += var_i1; + var_i0 = wasm_rt_grow_memory(&instance->w2c_memory, var_i0); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + UNREACHABLE; + } + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f410(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = 64u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 3u; + var_i0 >>= (var_i1 & 31); + goto var_Bfunc; + } + var_i0 = 32u; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i0 -= var_i1; + var_l1 = var_i0; + var_i1 = 17u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = 31u; + goto var_Bfunc; + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_i1 = 8u; + var_i0 -= var_i1; + var_i1 = var_p0; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 -= var_i3; + var_i1 >>= (var_i2 & 31); + var_i0 += var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f411(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = 16u; + var_i1 = var_p0; + var_i2 = var_p0; + var_i3 = 16u; + var_i2 = var_i2 < var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_p0 = var_i0; + var_i1 = 64u; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B0;} + var_i0 = 32u; + var_i1 = var_p0; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i0 -= var_i1; + var_l1 = var_i0; + var_i1 = 17u; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_p0; + var_i1 = 1u; + var_i2 = var_l1; + var_i3 = 2u; + var_i2 -= var_i3; + var_i1 <<= (var_i2 & 31); + var_l1 = var_i1; + var_i2 = 1u; + var_i1 -= var_i2; + var_i0 += var_i1; + var_i1 = 0u; + var_i2 = var_l1; + var_i1 -= var_i2; + var_i0 &= var_i1; + goto var_Bfunc; + var_B0:; + var_i0 = var_p0; + var_i1 = 7u; + var_i0 += var_i1; + var_i1 = 4294967288u; + var_i0 &= var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f412(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = 8u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f411(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i0 = w2c_highlights_f410(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = 62176u; + var_i0 += var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_p0 = var_i0; + var_i0 = var_l3; + var_i1 = 31u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i1 = 62176u; + var_i0 += var_i1; + var_i1 = var_p0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + goto var_B0; + } + } else { + var_L3: + var_i0 = var_p0; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 4294967294u; + var_i0 &= var_i1; + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_p0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + } else { + var_i0 = 62300u; + var_i1 = var_p0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + goto var_B0; + } else { + var_i0 = var_p0; + var_l2 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_p0 = var_i0; + goto var_L3; + } + UNREACHABLE; + } + } + var_i0 = instance->w2c_g84; + var_i1 = instance->w2c_g83; + var_i2 = var_l1; + var_i1 += var_i2; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l1; + var_i1 = 327679u; + var_i0 += var_i1; + var_i1 = 4294901760u; + var_i0 &= var_i1; + var_p0 = var_i0; + var_i1 = instance->w2c_g88; + var_i2 = instance->w2c_g84; + var_i3 = instance->w2c_g88; + var_i4 = instance->w2c_g84; + var_i3 = var_i3 > var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + var_i1 = 4294967232u; + var_i0 -= var_i1; + w2c_highlights_f409(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g88; + var_i1 = instance->w2c_g87; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g87; + var_i1 = var_p0; + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g87; + var_i2 = instance->w2c_g88; + var_i3 = instance->w2c_g87; + var_i2 -= var_i3; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l2; + instance->w2c_g87 = var_i0; + var_i0 = instance->w2c_g88; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g88 = var_i0; + } + var_i0 = instance->w2c_g84; + var_i1 = var_p0; + var_i0 += var_i1; + instance->w2c_g84 = var_i0; + } + var_i0 = instance->w2c_g83; + var_p0 = var_i0; + var_i1 = var_l1; + var_i0 += var_i1; + instance->w2c_g83 = var_i0; + var_i0 = var_p0; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_p0; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = instance->w2c_g85; + var_i1 = var_l1; + var_i0 += var_i1; + instance->w2c_g85 = var_i0; + var_i0 = var_p0; + var_i1 = 8u; + var_i0 += var_i1; + goto var_Bfunc; + var_B0:; + var_i0 = var_p0; + var_i1 = var_l1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g86; + var_i1 = var_l1; + var_i0 -= var_i1; + instance->w2c_g86 = var_i0; + var_i0 = instance->w2c_g85; + var_i1 = var_l1; + var_i0 += var_i1; + instance->w2c_g85 = var_i0; + var_i0 = var_p0; + var_i1 = 8u; + var_i0 += var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f413(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = !(var_i0); + if (var_i0) { + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 8u; + var_i0 -= var_i1; + var_p0 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 4294967294u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = w2c_highlights_f410(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i0; + var_i0 = var_p0; + var_i1 = var_l1; + var_i2 = 1u; + var_i1 |= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_p0; + var_i1 = var_l2; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i2 = 62176u; + var_i1 += var_i2; + var_l2 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l2; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g85; + var_i1 = var_l1; + var_i0 -= var_i1; + instance->w2c_g85 = var_i0; + var_i0 = instance->w2c_g86; + var_i1 = var_l1; + var_i0 += var_i1; + instance->w2c_g86 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f414(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g83; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = 65536u; + instance->w2c_g83 = var_i0; + var_i0 = 65536u; + instance->w2c_g84 = var_i0; + var_i0 = 0u; + instance->w2c_g85 = var_i0; + var_i0 = 0u; + instance->w2c_g86 = var_i0; + var_i0 = 62176u; + var_i1 = 0u; + var_i2 = 128u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f415(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + v128 var_l3 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + v128 var_o0, var_o1; + var_i0 = var_p2; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_L1: + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_o1 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_o0 = simde_wasm_i8x16_ne(var_o0, var_o1); + var_l3 = var_o0; + var_i0 = simde_wasm_v128_any_true(var_o0); + if (var_i0) { + var_o0 = var_l3; + var_i0 = v128_i8x16_bitmask(var_o0); + var_i0 = I32_CTZ(var_i0); + var_i1 = var_p2; + var_i0 = var_i0 >= var_i1; + goto var_Bfunc; + } + var_i0 = var_p2; + var_i1 = 16u; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = 1u; + } else { + var_i0 = var_p0; + var_i1 = 16u; + var_i0 += var_i1; + var_p0 = var_i0; + var_i0 = var_p1; + var_i1 = 16u; + var_i0 += var_i1; + var_p1 = var_i0; + var_i0 = var_p2; + var_i1 = 16u; + var_i0 -= var_i1; + var_p2 = var_i0; + goto var_L1; + } + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f416(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0, var_l3 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i0 = !(var_i0); + var_i1 = var_p0; + var_i2 = 4294967295u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g89; + var_i1 = var_p0; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l1 = var_i0; + var_i1 = var_l1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 1u; + var_i1 -= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g93; + var_i1 = instance->w2c_g94; + var_i2 = var_l1; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 12u); + var_i1 &= var_i2; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l2 = var_i0; + var_L2: + var_i0 = var_l2; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l1; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } else { + var_i0 = var_l2; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l2 = var_i0; + goto var_L2; + } + var_i0 = instance->w2c_g95; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g95 = var_i0; + var_i0 = instance->w2c_g96; + var_i1 = var_l1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 8u); + var_i0 -= var_i1; + instance->w2c_g96 = var_i0; + var_i0 = var_l1; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l3; + var_i1 = instance->w2c_g92; + var_i2 = 1u; + var_i1 <<= (var_i2 & 31); + var_i2 = 1u; + var_i1 |= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_p0; + instance->w2c_g92 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f417(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 37u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 38u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = var_p0; + var_i2 = 36u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f418(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = 255u; + var_i0 &= var_i1; + var_i0 = w2c_highlights_f417(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p0; + var_i2 = 4294967040u; + var_i1 &= var_i2; + var_i2 = 256u; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 36544u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 327u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 45136u; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f419(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = instance->w2c_g97; + var_i0 = w2c_highlights_f417(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = 36544u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g97; + var_i1 = 71u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 45136u; + goto var_Bfunc; + } + var_i0 = instance->w2c_g97; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g97; + var_i2 = 49u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = instance->w2c_g71; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g73; + var_i0 = w2c_highlights_f418(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l0 = var_i0; + if (var_i0) { + var_i0 = var_l0; + goto var_Bfunc; + } + var_i0 = 45040u; + var_l0 = var_i0; + var_L4: + var_i0 = var_l0; + var_i1 = 45136u; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B5;} + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = !(var_i0); + if (var_i0) {goto var_B5;} + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i0 = w2c_highlights_f418(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + if (var_i0) { + var_i0 = var_l1; + goto var_Bfunc; + } else { + var_i0 = var_l0; + var_i1 = 12u; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L4; + } + UNREACHABLE; + var_B5:; + } + var_i0 = 38880u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f420(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = instance->w2c_g99; + var_i1 = var_p0; + var_i2 = instance->w2c_g100; + var_i3 = instance->w2c_g101; + var_i2 -= var_i3; + var_i1 += var_i2; + var_i2 = var_p0; + var_i3 = var_p0; + var_i4 = instance->w2c_g102; + var_i3 = var_i3 >= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = 5u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f421(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0, var_l2 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g100; + var_i1 = instance->w2c_g101; + var_i2 = var_p0; + var_i1 += var_i2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g101; + var_i1 = var_p0; + var_i0 += var_i1; + var_i1 = 4294967232u; + var_i0 -= var_i1; + var_l1 = var_i0; + var_i1 = instance->w2c_g100; + var_i2 = 1u; + var_i1 <<= (var_i2 & 31); + var_p0 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l1; + var_p0 = var_i0; + } + var_i0 = var_p0; + var_i1 = 5u; + var_i0 <<= (var_i1 & 31); + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l1 = var_i0; + var_i1 = instance->w2c_g99; + var_i2 = instance->w2c_g102; + var_i3 = 5u; + var_i2 <<= (var_i3 & 31); + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l1; + var_i1 = var_p0; + var_i2 = instance->w2c_g101; + var_i3 = instance->w2c_g102; + var_i2 -= var_i3; + var_l2 = var_i2; + var_i1 -= var_i2; + var_i2 = 5u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_i1 = instance->w2c_g99; + var_i2 = instance->w2c_g100; + var_i3 = var_l2; + var_i2 -= var_i3; + var_i3 = 5u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_i2 = var_l2; + var_i3 = 5u; + var_i2 <<= (var_i3 & 31); + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g99; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l1; + instance->w2c_g99 = var_i0; + var_i0 = var_p0; + instance->w2c_g100 = var_i0; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f422(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p2; + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g105; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g105 = var_i0; + var_i0 = instance->w2c_g106; + var_i1 = var_p1; + var_i0 += var_i1; + instance->w2c_g106 = var_i0; + var_i0 = instance->w2c_g105; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g103; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g103 = var_i0; + var_i0 = 0u; + instance->w2c_g106 = var_i0; + } + } else { + var_i0 = var_p0; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f423(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + v128 var_o0, var_o1, var_o3, var_o4; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 += var_i1; + var_p1 = var_i0; + var_L0: + var_i0 = var_p1; + var_i1 = var_p0; + var_i0 -= var_i1; + var_i1 = 16u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_p0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l4 = var_o0; + var_i1 = 4294967280u; + var_o1 = simde_wasm_i8x16_splat(var_i1); + var_o0 = simde_wasm_u8x16_ge(var_o0, var_o1); + var_i0 = v128_i8x16_bitmask(var_o0); + var_i0 = I32_POPCNT(var_i0); + var_i1 = var_l2; + var_i2 = 16u; + var_o3 = var_l4; + var_i4 = 4294967232u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_v128_and(var_o3, var_o4); + var_i4 = 4294967168u; + var_o4 = simde_wasm_i8x16_splat(var_i4); + var_o3 = simde_wasm_i8x16_eq(var_o3, var_o4); + var_i3 = v128_i8x16_bitmask(var_o3); + var_i3 = I32_POPCNT(var_i3); + var_i2 -= var_i3; + var_i1 += var_i2; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_p0; + var_i1 = 16u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L0; + } + var_L2: + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i1 = 240u; + var_i0 = var_i0 >= var_i1; + var_i1 = var_l2; + var_i2 = var_l3; + var_i3 = 192u; + var_i2 &= var_i3; + var_i3 = 128u; + var_i2 = var_i2 != var_i3; + var_i1 += var_i2; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_p0; + var_i1 = 1u; + var_i0 += var_i1; + var_p0 = var_i0; + goto var_L2; + } + var_i0 = var_l2; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f424(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0; + v128 var_l4 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 1u; + w2c_highlights_f421(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g99; + var_i1 = instance->w2c_g101; + var_i2 = 5u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l3; + var_i1 = var_p1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l3; + var_i1 = var_p0; + var_i2 = var_p1; + var_i1 = w2c_highlights_f423(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u, var_i1); + var_i0 = var_l3; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = var_l3; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u, var_i1); + var_i0 = var_l3; + var_i1 = 4294967295u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u, var_i1); + var_i0 = var_l3; + var_i1 = var_p2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u, var_i1); + var_i0 = var_l3; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u, var_i1); + var_i0 = instance->w2c_g101; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g101 = var_i0; + var_i0 = instance->w2c_g101; + instance->w2c_g102 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_liveStage_0(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + w2c_highlights_f414(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_liveInitDoc_0(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0, var_l4 = 0; + v128 var_l5 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6; + w2c_highlights_f414(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p2; + instance->w2c_g97 = var_i0; + var_i0 = 1u; + var_i1 = 3u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_p0; + var_i1 = 8u; + var_i0 -= var_i1; + var_l3 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 4294967294u; + var_i0 &= var_i1; + var_i1 = var_p1; + var_i2 = 8u; + var_i1 += var_i2; + var_i1 = w2c_highlights_f411(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i1; + var_i0 -= var_i1; + var_p2 = var_i0; + var_i1 = 16u; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_p2; + var_i0 = w2c_highlights_f411(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_p2; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B0;} + var_i0 = var_l3; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l3; + var_i1 = var_l4; + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = var_p2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l3; + var_i1 = 8u; + var_i0 += var_i1; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_B0:; + var_i0 = 256u; + instance->w2c_g90 = var_i0; + var_i0 = 1024u; + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g89 = var_i0; + var_i0 = instance->w2c_g89; + var_i1 = 0u; + var_i2 = 1024u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 1u; + instance->w2c_g91 = var_i0; + var_i0 = 0u; + instance->w2c_g92 = var_i0; + var_i0 = 255u; + instance->w2c_g94 = var_i0; + var_i0 = 1024u; + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g93 = var_i0; + var_i0 = instance->w2c_g93; + var_i1 = 0u; + var_i2 = 1024u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 0u; + instance->w2c_g95 = var_i0; + var_i0 = 0u; + instance->w2c_g96 = var_i0; + var_i0 = 0u; + instance->w2c_g100 = var_i0; + var_i0 = 0u; + instance->w2c_g101 = var_i0; + var_i0 = 0u; + instance->w2c_g102 = var_i0; + var_i0 = 8192u; + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g99 = var_i0; + var_i0 = 256u; + instance->w2c_g100 = var_i0; + var_i0 = var_p1; + var_i1 = var_p0; + var_p2 = var_i1; + var_i0 += var_i1; + var_l3 = var_i0; + var_L1: + var_i0 = var_l3; + var_i1 = var_p2; + var_i2 = var_l3; + var_i3 = 10u; + var_i4 = 0u; + var_i5 = 1u; + var_i1 = w2c_highlights_f5(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p1 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 13u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_p2; + var_i1 = var_p1; + var_i2 = var_p2; + var_i1 -= var_i2; + var_i2 = 10u; + var_i3 = 25u; + var_i4 = var_p1; + var_i5 = 1u; + var_i4 += var_i5; + var_p2 = var_i4; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 10u; + var_i4 = var_i4 == var_i5; + var_i5 = var_p2; + var_i6 = var_l3; + var_i5 = var_i5 < var_i6; + var_l4 = var_i5; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + w2c_highlights_f424(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + var_i1 = 2u; + var_i2 = 1u; + var_i3 = var_l4; + var_i4 = var_p2; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 10u; + var_i4 = var_i4 == var_i5; + var_i3 &= var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 += var_i1; + } else { + var_i0 = var_p2; + var_i1 = var_p1; + var_i2 = var_p2; + var_i1 -= var_i2; + var_i2 = 9u; + w2c_highlights_f424(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p1; + var_i1 = 1u; + var_i0 += var_i1; + } + var_p2 = var_i0; + goto var_L1; + } + var_i0 = var_p2; + var_i1 = var_l3; + var_i2 = var_p2; + var_i1 -= var_i2; + var_i2 = 8u; + w2c_highlights_f424(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + instance->w2c_g103 = var_i0; + var_i0 = var_l3; + instance->w2c_g104 = var_i0; + var_i0 = instance->w2c_g101; + instance->w2c_g105 = var_i0; + var_i0 = 0u; + instance->w2c_g106 = var_i0; + var_i0 = 46160u; + var_i1 = 1u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 46164u; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 46168u; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 46172u; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 46176u; + var_i1 = instance->w2c_g101; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 8u; + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g116 = var_i0; + var_i0 = instance->w2c_g116; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g116; + var_i1 = instance->w2c_g101; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = 1u; + instance->w2c_g117 = var_i0; + var_i0 = 0u; + instance->w2c_g118 = var_i0; + var_i0 = 0u; + instance->w2c_g119 = var_i0; + var_i0 = instance->w2c_g101; + instance->w2c_g120 = var_i0; + var_i0 = 0u; + instance->w2c_g121 = var_i0; + var_i0 = 0u; + instance->w2c_g107 = var_i0; + var_i0 = 4294967295u; + instance->w2c_g98 = var_i0; + var_i0 = 0u; + instance->w2c_g123 = var_i0; + var_i0 = 1u; + instance->w2c_g122 = var_i0; + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f427(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0, var_l4 = 0, var_l5 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_L0: + var_i0 = var_p2; + var_i1 = var_l3; + var_i0 = var_i0 <= var_i1; + var_i1 = var_p1; + var_i2 = var_l4; + var_i1 = var_i1 <= var_i2; + var_i0 |= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l4; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + var_i1 = 128u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_l4; + var_i1 = 1u; + var_i0 += var_i1; + } else { + var_i0 = var_l5; + var_i1 = 224u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_l4; + var_i1 = 2u; + var_i0 += var_i1; + } else { + var_i0 = var_l5; + var_i1 = 240u; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_l4; + var_i1 = 3u; + var_i0 += var_i1; + } else { + var_i0 = var_l3; + var_i1 = 2u; + var_i0 += var_i1; + var_i1 = var_p2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = 2147483648u; + var_i0 |= var_i1; + goto var_Bfunc; + } else { + var_i0 = var_l3; + var_i1 = 2u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_l4; + var_i1 = 4u; + var_i0 += var_i1; + } + } + } + } + var_l4 = var_i0; + goto var_L0; + } + var_i0 = var_l4; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f428(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 7u; + var_i0 &= var_i1; + var_i1 = 18u; + var_i0 <<= (var_i1 & 31); + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u); + var_i2 = 63u; + var_i1 &= var_i2; + var_i2 = 12u; + var_i1 <<= (var_i2 & 31); + var_i0 |= var_i1; + var_i1 = var_p0; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 3u); + var_i2 = 63u; + var_i1 &= var_i2; + var_i2 = var_p0; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 2u); + var_i3 = 63u; + var_i2 &= var_i3; + var_i3 = 6u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i0 |= var_i1; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f429(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 12u; + var_i1 >>= (var_i2 & 31); + var_i2 = 224u; + var_i1 |= var_i2; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 6u; + var_i1 >>= (var_i2 & 31); + var_i2 = 63u; + var_i1 &= var_i2; + var_i2 = 128u; + var_i1 |= var_i2; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 1u, var_i1); + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = 63u; + var_i1 &= var_i2; + var_i2 = 128u; + var_i1 |= var_i2; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 2u, var_i1); + FUNC_EPILOGUE; +} + +void w2c_highlights_f430(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + u32 var_l5 = 0; + v128 var_l6 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = var_p2; + if (var_i0) { + var_i0 = var_p2; + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i0; + var_i1 = var_p1; + var_i2 = var_p2; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_p0 = var_i0; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_p0; + var_i1 = var_p2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p2; + var_i1 = w2c_highlights_f423(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u, var_i1); + var_i0 = var_p0; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = var_p0; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u, var_i1); + var_i0 = var_p0; + var_i1 = var_p4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u, var_i1); + var_i0 = var_p0; + var_i1 = var_p3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u, var_i1); + var_i0 = var_p0; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u, var_i1); + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f431(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3) { + u32 var_l4 = 0, var_l5 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 46160u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l5 = var_i0; + if (var_i0) { + var_i0 = var_p0; + var_i1 = var_l5; + var_i2 = 4u; + var_i1 <<= (var_i2 & 31); + var_i2 = 46148u; + var_i1 += var_i2; + var_l4 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i0 = var_i0 <= var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = var_l4; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_p1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + } + var_i0 = var_p3; + var_i1 = var_l4; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 12u); + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_p3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + } + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l5; + var_i1 = 1000u; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l4; + var_i1 = var_p1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l4; + var_i1 = var_p3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = 0u; + goto var_Bfunc; + } + } + var_i0 = var_l5; + var_i1 = 4u; + var_i0 <<= (var_i1 & 31); + var_i1 = 46164u; + var_i0 += var_i1; + var_l4 = var_i0; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l4; + var_i1 = var_p1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l4; + var_i1 = var_p2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u, var_i1); + var_i0 = var_l4; + var_i1 = var_p3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = 46160u; + var_i1 = var_l5; + var_i2 = 1u; + var_i1 += var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_f432(w2c_highlights* instance, u32 var_p0) { + u32 var_l1 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = var_p0; + var_i1 = instance->w2c_g120; + var_i0 = var_i0 <= var_i1; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g119; + var_i1 = 4u; + var_i0 <<= (var_i1 & 31); + var_i1 = 46164u; + var_i0 += var_i1; + var_l1 = var_i0; + var_i1 = var_l1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = var_p0; + var_i3 = instance->w2c_g120; + var_i2 -= var_i3; + var_i1 += var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l1; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_f433(w2c_highlights* instance) { + u32 var_l0 = 0, var_l1 = 0, var_l2 = 0, var_l3 = 0, var_l4 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3; + var_i0 = instance->w2c_g116; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g116 = var_i0; + var_i0 = 0u; + instance->w2c_g122 = var_i0; + var_i0 = instance->w2c_g86; + var_i1 = instance->w2c_g85; + var_i0 = var_i0 > var_i1; + var_i1 = instance->w2c_g86; + var_i2 = 1048576u; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 65536u; + var_l0 = var_i0; + var_i0 = 65536u; + var_l4 = var_i0; + var_L1: + var_i0 = instance->w2c_g83; + var_i1 = var_l0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 4294967294u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l1; + var_i1 = var_l4; + var_i0 += var_i1; + var_l4 = var_i0; + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L1; + } + var_i0 = instance->w2c_g103; + var_i0 = w2c_highlights_f434(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i0; + var_i0 = 0u; + var_l1 = var_i0; + var_i0 = instance->w2c_g102; + var_l2 = var_i0; + var_L4: + var_i0 = var_l1; + var_i1 = var_l2; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = instance->w2c_g100; + var_i0 = var_i0 == var_i1; + if (var_i0) {goto var_B5;} + var_i0 = instance->w2c_g102; + var_i1 = instance->w2c_g100; + var_i2 = instance->w2c_g101; + var_i1 -= var_i2; + var_i0 += var_i1; + var_l1 = var_i0; + var_i1 = instance->w2c_g100; + var_l2 = var_i1; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B5;} + } + var_i0 = instance->w2c_g99; + var_i1 = var_l1; + var_i2 = 5u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l0 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_i1 = 8u; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l3; + var_i2 = var_l0; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = instance->w2c_g103; + var_i2 -= var_i3; + var_i1 += var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } else { + var_i0 = var_l0; + var_i1 = var_l0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i1 = w2c_highlights_f434(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = var_l0; + var_i1 = var_l0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 12u); + var_i1 = w2c_highlights_f434(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L4; + var_B5:; + var_i0 = 1u; + var_l1 = var_i0; + var_L8: + var_i0 = instance->w2c_g91; + var_i1 = var_l1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g89; + var_i1 = var_l1; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i1 = 1u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + var_i1 = var_l0; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l2; + var_i1 = var_l0; + var_i1 = w2c_highlights_f434(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L8; + } + var_i0 = 0u; + var_l1 = var_i0; + var_L11: + var_i0 = instance->w2c_g94; + var_i1 = var_l1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g93; + var_i1 = var_l1; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l0 = var_i0; + var_i0 = var_l2; + var_i1 = var_l0; + var_i1 = w2c_highlights_f434(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_L13: + var_i0 = var_l0; + if (var_i0) { + var_i0 = var_l0; + var_i1 = var_l0; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l0 = var_i1; + var_i1 = w2c_highlights_f434(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + goto var_L13; + } + var_i0 = var_l1; + var_i1 = 1u; + var_i0 += var_i1; + var_l1 = var_i0; + goto var_L11; + } + var_i0 = instance->w2c_g103; + if (var_i0) { + var_i0 = var_l3; + var_i1 = instance->w2c_g104; + var_i2 = instance->w2c_g103; + var_i1 -= var_i2; + var_i0 += var_i1; + instance->w2c_g104 = var_i0; + var_i0 = var_l3; + instance->w2c_g103 = var_i0; + } + var_i0 = instance->w2c_g99; + var_i0 = w2c_highlights_f434(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g99 = var_i0; + var_i0 = instance->w2c_g89; + var_i0 = w2c_highlights_f434(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g89 = var_i0; + var_i0 = instance->w2c_g93; + var_i0 = w2c_highlights_f434(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g93 = var_i0; + var_i0 = 65536u; + var_l0 = var_i0; + var_L16: + var_i0 = instance->w2c_g83; + var_i1 = var_l0; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 4294967294u; + var_i0 &= var_i1; + var_l1 = var_i0; + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1u; + var_i0 &= var_i1; + var_i0 = I32_CLZ(var_i0); + var_i1 = 5u; + var_i0 >>= (var_i1 & 31); + if (var_i0) { + var_i0 = var_l0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l3 = var_i0; + var_i1 = var_l0; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_l0; + var_i2 = var_l1; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + } + var_i0 = var_l3; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + } + var_i0 = var_l0; + var_i1 = var_l1; + var_i0 += var_i1; + var_l0 = var_i0; + goto var_L16; + } + var_i0 = var_l4; + instance->w2c_g83 = var_i0; + var_i0 = 62176u; + var_i1 = 0u; + var_i2 = 128u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 0u; + instance->w2c_g86 = var_i0; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_f434(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 8u; + var_i0 -= var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_i1 = 8u; + var_i0 += var_i1; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_f435(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2, u32 var_p3, u32 var_p4) { + u32 var_l5 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = var_p4; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = var_p1; + var_i2 = var_p0; + var_i3 = var_p2; + var_i2 += var_i3; + var_p0 = var_i2; + var_i3 = var_p1; + var_i4 = var_p2; + var_i3 += var_i4; + var_l5 = var_i3; + var_i0 = w2c_highlights_f431(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_p3; + var_i1 = var_p4; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_p1 = var_i0; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_p1; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_p4; + var_i1 = 1u; + var_i0 += var_i1; + goto var_Bfunc; + } + var_i0 = var_p1; + var_i1 = var_p2; + var_i0 += var_i1; + var_p0 = var_i0; + var_i1 = var_p3; + var_i2 = var_p4; + var_i3 = 1u; + var_i2 -= var_i3; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_p1 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = var_p0; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + } + var_i0 = var_p4; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_liveApplyEdits_0(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + u32 var_l2 = 0, var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, var_l9 = 0, + var_l10 = 0, var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, var_l16 = 0, var_l17 = 0, + var_l18 = 0, var_l19 = 0, var_l20 = 0, var_l21 = 0, var_l22 = 0, var_l23 = 0, var_l24 = 0, var_l25 = 0, + var_l26 = 0, var_l27 = 0; + v128 var_l28 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4, var_i5, var_i6, var_i7, + var_i8; + var_i0 = instance->w2c_g114; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g115; + w2c_highlights_f416(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g114 = var_i0; + var_i0 = 0u; + instance->w2c_g115 = var_i0; + var_i0 = 0u; + instance->w2c_g108 = var_i0; + var_i0 = 0u; + instance->w2c_g6 = var_i0; + var_i0 = 2147483647u; + instance->w2c_g5 = var_i0; + var_i0 = 0u; + instance->w2c_g87 = var_i0; + var_i0 = 0u; + instance->w2c_g88 = var_i0; + var_i0 = var_p0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l24 = var_i0; + var_i0 = instance->w2c_g122; + var_i1 = var_p1; + var_i0 |= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g120; + var_i1 = instance->w2c_g121; + var_l2 = var_i1; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = instance->w2c_g120; + var_i3 = var_l2; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i0 = var_p1; + if (var_i0) { + var_i0 = var_p1; + var_i1 = 1u; + var_i0 -= var_i1; + var_l2 = var_i0; + var_i0 = var_l3; + var_i1 = var_p1; + var_i2 = instance->w2c_g122; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + } + var_i0 = instance->w2c_g117; + var_i1 = instance->w2c_g118; + var_i0 -= var_i1; + var_i1 = 1u; + var_i2 = instance->w2c_g122; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l20 = var_i0; + var_i1 = 3u; + var_i0 <<= (var_i1 & 31); + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l17 = var_i0; + var_i1 = var_l2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l17; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = 1u; + var_p1 = var_i0; + var_L2: + var_i0 = var_p1; + var_i1 = var_l20; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l17; + var_i1 = var_p1; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l2 = var_i0; + var_i1 = instance->w2c_g116; + var_i2 = instance->w2c_g118; + var_i3 = var_p1; + var_i2 += var_i3; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_l3 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l2; + var_i1 = var_l3; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_p1; + var_i1 = 1u; + var_i0 += var_i1; + var_p1 = var_i0; + goto var_L2; + } + var_i0 = instance->w2c_g116; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g116 = var_i0; + var_i0 = 0u; + instance->w2c_g122 = var_i0; + } + var_i0 = var_l24; + var_p1 = var_i0; + var_L4: + var_i0 = var_p1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 4u; + var_i0 += var_i1; + var_i1 = var_p1; + var_i2 = 1u; + var_i1 -= var_i2; + var_p1 = var_i1; + var_i2 = 24u; + var_i1 *= var_i2; + var_i0 += var_i1; + var_l7 = var_i0; + var_i1 = var_l7; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_l2 = var_i1; + var_i1 = var_l7; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 8u); + var_l15 = var_i1; + var_i1 = var_l7; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 12u); + var_l3 = var_i1; + var_i1 = var_p0; + var_i2 = var_l7; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 16u); + var_i1 += var_i2; + var_l9 = var_i1; + var_i1 = var_l7; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 20u); + var_l11 = var_i1; + var_i1 = 0u; + var_l4 = var_i1; + var_i1 = 0u; + var_l25 = var_i1; + var_i1 = var_l7; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l8 = var_i1; + var_i1 = w2c_highlights_f420(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i1; + var_i1 = var_l15; + var_i1 = w2c_highlights_f420(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l5 = var_i1; + var_i1 = var_l8; + var_i2 = var_l15; + var_i1 = var_i1 == var_i2; + var_l26 = var_i1; + var_i1 = var_l6; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 24u); + var_l7 = var_i1; + var_i1 = var_l5; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l21 = var_i1; + var_i1 = var_l5; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_l22 = var_i1; + var_i1 = var_l5; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 24u); + var_l27 = var_i1; + var_i1 = var_l6; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l18 = var_i1; + var_i2 = var_l6; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4u); + var_l19 = var_i2; + var_i3 = var_l2; + var_i1 = w2c_highlights_f427(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i2 = 31u; + var_i1 >>= (var_i2 & 31); + var_l6 = var_i1; + var_i1 = var_l21; + var_i2 = var_l22; + var_i3 = var_l3; + var_i1 = w2c_highlights_f427(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l3 = var_i1; + var_i2 = 31u; + var_i1 >>= (var_i2 & 31); + var_l12 = var_i1; + var_i1 = var_l22; + var_i2 = var_l3; + var_i3 = 2147483647u; + var_i2 &= var_i3; + var_l14 = var_i2; + var_i1 -= var_i2; + var_i2 = var_l12; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_i1 -= var_i2; + var_i2 = var_l12; + var_i3 = 3u; + var_i2 *= var_i3; + var_i1 += var_i2; + var_i2 = var_l2; + var_i3 = 2147483647u; + var_i2 &= var_i3; + var_l10 = var_i2; + var_i3 = var_l6; + var_i4 = 3u; + var_i3 *= var_i4; + var_i2 += var_i3; + var_l3 = var_i2; + var_i3 = var_l11; + var_i2 += var_i3; + var_i1 += var_i2; + var_l5 = var_i1; + if (var_i1) { + var_i1 = var_l5; + var_i1 = w2c_highlights_f412(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l4 = var_i1; + var_l2 = var_i1; + var_i2 = var_l18; + var_i3 = var_l10; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + var_i1 = var_l2; + var_i2 = var_l10; + var_i1 += var_i2; + var_l2 = var_i1; + var_i1 = var_l6; + if (var_i1) { + var_i1 = var_l2; + var_i2 = var_l10; + var_i3 = var_l18; + var_i2 += var_i3; + var_i2 = w2c_highlights_f428(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 65536u; + var_i2 -= var_i3; + var_i3 = 10u; + var_i2 >>= (var_i3 & 31); + var_i3 = 55296u; + var_i2 += var_i3; + w2c_highlights_f429(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 3u; + var_i1 += var_i2; + var_l2 = var_i1; + } + var_i1 = var_l2; + var_i2 = var_l9; + var_i3 = var_l11; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + var_i1 = var_l2; + var_i2 = var_l11; + var_i1 += var_i2; + var_l2 = var_i1; + var_i1 = var_l12; + if (var_i1) { + var_i1 = var_l2; + var_i2 = var_l14; + var_i3 = var_l21; + var_i2 += var_i3; + var_i2 = w2c_highlights_f428(instance, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = 65536u; + var_i2 -= var_i3; + var_i3 = 1023u; + var_i2 &= var_i3; + var_i3 = 56320u; + var_i2 += var_i3; + w2c_highlights_f429(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l2; + var_i2 = 3u; + var_i1 += var_i2; + } else { + var_i1 = var_l2; + } + var_i2 = var_l12; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_l2 = var_i2; + var_i3 = var_l14; + var_i4 = var_l21; + var_i3 += var_i4; + var_i2 += var_i3; + var_i3 = var_l22; + var_i4 = var_l14; + var_i3 -= var_i4; + var_i4 = var_l2; + var_i3 -= var_i4; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + } + var_i1 = var_l3; + var_i2 = var_l11; + var_i1 += var_i2; + var_l2 = var_i1; + var_L9: + var_i1 = var_l2; + var_i2 = 3u; + var_i1 += var_i2; + var_l9 = var_i1; + var_i2 = var_l5; + var_i1 = var_i1 <= var_i2; + var_i2 = var_l2; + var_i3 = 3u; + var_i2 = var_i2 >= var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l2; + var_i2 = var_l4; + var_i1 += var_i2; + var_l6 = var_i1; + var_i2 = 3u; + var_i1 -= var_i2; + var_i1 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 61695u; + var_i1 &= var_i2; + var_i2 = 41197u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l6; + var_i2 = i32_load16_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 61695u; + var_i2 &= var_i3; + var_i3 = 45293u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l6; + var_i2 = 3u; + var_i1 -= var_i2; + var_l10 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 5u); + var_i2 = 63u; + var_i1 &= var_i2; + var_i2 = var_l10; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4u); + var_i3 = 15u; + var_i2 &= var_i3; + var_i3 = 6u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i2 = var_l10; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 2u); + var_i3 = 63u; + var_i2 &= var_i3; + var_i3 = var_l10; + var_i3 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 1u); + var_i4 = 15u; + var_i3 &= var_i4; + var_i4 = 6u; + var_i3 <<= (var_i4 & 31); + var_i2 |= var_i3; + var_i3 = 10u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + var_i2 = 65536u; + var_i1 += var_i2; + var_l6 = var_i1; + var_i1 = var_l10; + var_i2 = var_l6; + var_i3 = 18u; + var_i2 >>= (var_i3 & 31); + var_i3 = 240u; + var_i2 |= var_i3; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1), var_i2); + var_i1 = var_l10; + var_i2 = var_l6; + var_i3 = 12u; + var_i2 >>= (var_i3 & 31); + var_i3 = 63u; + var_i2 &= var_i3; + var_i3 = 128u; + var_i2 |= var_i3; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 1u, var_i2); + var_i1 = var_l10; + var_i2 = var_l6; + var_i3 = 6u; + var_i2 >>= (var_i3 & 31); + var_i3 = 63u; + var_i2 &= var_i3; + var_i3 = 128u; + var_i2 |= var_i3; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 2u, var_i2); + var_i1 = var_l10; + var_i2 = var_l6; + var_i3 = 63u; + var_i2 &= var_i3; + var_i3 = 128u; + var_i2 |= var_i3; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 3u, var_i2); + var_i1 = var_l10; + var_i2 = 4u; + var_i1 += var_i2; + var_i2 = var_l10; + var_i3 = 6u; + var_i2 += var_i3; + var_i3 = var_l5; + var_i4 = var_l9; + var_i3 -= var_i4; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + var_i1 = var_l5; + var_i2 = 2u; + var_i1 -= var_i2; + var_l5 = var_i1; + } + } + var_i1 = var_l2; + var_i2 = var_l3; + var_i1 = var_i1 != var_i2; + if (var_i1) { + var_i1 = var_l3; + var_l2 = var_i1; + goto var_L9; + } + var_i1 = var_l27; + var_i2 = 19u; + var_i1 &= var_i2; + var_l14 = var_i1; + var_i1 = var_l8; + if (var_i1) { + var_i1 = var_l8; + var_i2 = 1u; + var_i1 -= var_i2; + var_i1 = w2c_highlights_f420(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 24u); + var_l3 = var_i1; + var_i2 = 19u; + var_i1 &= var_i2; + var_i2 = 17u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l4; + var_i2 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 10u; + var_i2 = var_i2 == var_i3; + var_i3 = var_l14; + var_i4 = 1u; + var_i3 = var_i3 == var_i4; + var_i4 = var_l5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l18 = var_i1; + var_i1 = var_l2; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_l19 = var_i1; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l5; + var_i1 += var_i2; + var_i1 = w2c_highlights_f412(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l2 = var_i1; + var_i2 = var_l18; + var_i3 = var_l19; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + var_i1 = var_l2; + var_i2 = var_l19; + var_i1 += var_i2; + var_l7 = var_i1; + var_i2 = 13u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1), var_i2); + var_i1 = var_l5; + if (var_i1) { + var_i1 = var_l7; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l4; + var_i3 = var_l5; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + } + var_i1 = var_l4; + if (var_i1) { + var_i1 = var_l4; + w2c_highlights_f413(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i1 = var_l2; + var_l4 = var_i1; + var_i1 = var_l19; + var_i2 = 1u; + var_i1 += var_i2; + var_i2 = var_l5; + var_i1 += var_i2; + var_l5 = var_i1; + var_i1 = 0u; + var_l26 = var_i1; + var_i1 = 1u; + var_l25 = var_i1; + var_i1 = var_l8; + var_i2 = 1u; + var_i1 -= var_i2; + var_l8 = var_i1; + var_i1 = var_l3; + var_l7 = var_i1; + } + } + var_i1 = var_l5; + if (var_i1) { + var_i1 = var_l4; + var_i2 = var_l5; + var_i3 = 1u; + var_i2 -= var_i3; + var_l3 = var_i2; + var_i1 += var_i2; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + var_i2 = var_l14; + var_i3 = 1u; + var_i2 = var_i2 == var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = 2u; + var_l14 = var_i1; + var_i1 = var_l3; + var_l5 = var_i1; + } + } + var_i1 = 1u; + var_l11 = var_i1; + var_i1 = 0u; + var_l2 = var_i1; + var_L19: + var_i1 = var_l5; + var_i2 = var_l2; + var_i3 = var_l4; + var_i2 += var_i3; + var_i3 = var_l4; + var_i4 = var_l5; + var_i3 += var_i4; + var_i4 = 10u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l4; + var_i2 -= var_i3; + var_l2 = var_i2; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = var_l11; + var_i2 = 1u; + var_i1 += var_i2; + var_l11 = var_i1; + var_i1 = var_l2; + var_i2 = var_l4; + var_i1 += var_i2; + var_l3 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_l2; + var_i2 = 2u; + var_i3 = 1u; + var_i4 = var_l3; + var_i5 = 1u; + var_i4 += var_i5; + var_i4 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i4)); + var_i5 = 10u; + var_i4 = var_i4 == var_i5; + var_i5 = var_l2; + var_i6 = 1u; + var_i5 += var_i6; + var_i6 = var_l5; + var_i5 = var_i5 < var_i6; + var_i4 &= var_i5; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i1 += var_i2; + } else { + var_i1 = var_l2; + var_i2 = 1u; + var_i1 += var_i2; + } + var_l2 = var_i1; + goto var_L19; + } + var_i1 = var_l15; + var_i2 = var_l8; + var_i1 -= var_i2; + var_i2 = 1u; + var_i1 += var_i2; + var_l2 = var_i1; + var_i2 = var_l11; + var_i1 = var_i1 != var_i2; + if (var_i1) { + var_i1 = var_l11; + w2c_highlights_f421(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i1 = var_l15; + var_i1 = w2c_highlights_f420(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 20u); + var_l10 = var_i1; + var_i1 = var_l8; + var_l3 = var_i1; + var_L23: + var_i1 = var_l3; + var_i2 = var_l15; + var_i1 = var_i1 <= var_i2; + if (var_i1) { + var_i1 = var_l3; + var_i1 = w2c_highlights_f420(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l9 = var_i1; + var_i1 = var_l3; + var_i2 = var_l15; + var_i1 = var_i1 < var_i2; + var_i2 = var_l3; + var_i3 = var_l8; + var_i2 = var_i2 > var_i3; + var_i1 &= var_i2; + if (var_i1) { + var_i1 = var_l9; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_l9; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 4u); + var_i3 = var_l9; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 24u); + w2c_highlights_f422(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l9; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 12u); + w2c_highlights_f413(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l9; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 20u); + w2c_highlights_f416(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } else { + var_i1 = var_l9; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 12u); + w2c_highlights_f413(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = var_l15; + var_i1 = var_i1 < var_i2; + if (var_i1) { + var_i1 = var_l9; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 20u); + w2c_highlights_f416(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + } + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_l3 = var_i1; + goto var_L23; + } + var_i1 = var_l2; + var_i2 = var_l11; + var_i1 = var_i1 != var_i2; + if (var_i1) { + var_i1 = instance->w2c_g102; + var_i2 = var_l8; + var_i1 = var_i1 != var_i2; + if (var_i1) { + var_i1 = instance->w2c_g100; + var_i2 = instance->w2c_g101; + var_i1 -= var_i2; + var_l3 = var_i1; + var_i1 = var_l8; + var_i2 = instance->w2c_g102; + var_i1 = var_i1 < var_i2; + if (var_i1) { + var_i1 = instance->w2c_g99; + var_i2 = var_l3; + var_i3 = var_l8; + var_i2 += var_i3; + var_i3 = 5u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_i2 = instance->w2c_g99; + var_i3 = var_l8; + var_i4 = 5u; + var_i3 <<= (var_i4 & 31); + var_i2 += var_i3; + var_i3 = instance->w2c_g102; + var_i4 = var_l8; + var_i3 -= var_i4; + var_i4 = 5u; + var_i3 <<= (var_i4 & 31); + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + } else { + var_i1 = instance->w2c_g99; + var_i2 = instance->w2c_g102; + var_i3 = 5u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_i2 = instance->w2c_g99; + var_i3 = instance->w2c_g102; + var_i4 = var_l3; + var_i3 += var_i4; + var_i4 = 5u; + var_i3 <<= (var_i4 & 31); + var_i2 += var_i3; + var_i3 = var_l8; + var_i4 = instance->w2c_g102; + var_i3 -= var_i4; + var_i4 = 5u; + var_i3 <<= (var_i4 & 31); + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i1, var_i2, var_i3); + } + var_i1 = var_l8; + instance->w2c_g102 = var_i1; + } + var_i1 = var_l8; + var_i2 = var_l11; + var_i1 += var_i2; + instance->w2c_g102 = var_i1; + var_i1 = instance->w2c_g101; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i2 = var_l11; + var_i1 += var_i2; + instance->w2c_g101 = var_i1; + } + var_i1 = 0u; + var_l3 = var_i1; + var_i1 = 0u; + var_l2 = var_i1; + var_L30: + var_i1 = var_l5; + var_i2 = var_l2; + var_i3 = var_l4; + var_i2 += var_i3; + var_l6 = var_i2; + var_i3 = var_l4; + var_i4 = var_l5; + var_i3 += var_i4; + var_i4 = 10u; + var_i5 = 0u; + var_i6 = 1u; + var_i2 = w2c_highlights_f5(instance, var_i2, var_i3, var_i4, var_i5, var_i6); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i3 = var_l4; + var_i2 -= var_i3; + var_l12 = var_i2; + var_i1 = var_i1 > var_i2; + if (var_i1) { + var_i1 = var_l4; + var_i2 = var_l12; + var_i1 += var_i2; + var_l9 = var_i1; + var_i1 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 13u; + var_i1 = var_i1 == var_i2; + if (var_i1) { + var_i1 = var_l3; + var_i2 = var_l8; + var_i1 += var_i2; + var_i2 = var_l6; + var_i3 = var_l12; + var_i4 = var_l2; + var_i3 -= var_i4; + var_i4 = 2u; + var_i5 = 17u; + var_i6 = var_l9; + var_i7 = 1u; + var_i6 += var_i7; + var_i6 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i6)); + var_i7 = 10u; + var_i6 = var_i6 == var_i7; + var_i7 = var_l12; + var_i8 = 1u; + var_i7 += var_i8; + var_i8 = var_l5; + var_i7 = var_i7 < var_i8; + var_i6 &= var_i7; + var_l2 = var_i6; + var_i4 = var_i6 ? var_i4 : var_i5; + var_i5 = 4294967295u; + w2c_highlights_f430(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i1 = var_l12; + var_i2 = 2u; + var_i3 = 1u; + var_i4 = var_l2; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i1 += var_i2; + } else { + var_i1 = var_l3; + var_i2 = var_l8; + var_i1 += var_i2; + var_i2 = var_l2; + var_i3 = var_l4; + var_i2 += var_i3; + var_i3 = var_l12; + var_i4 = var_l2; + var_i3 -= var_i4; + var_i4 = 1u; + var_i5 = 4294967295u; + w2c_highlights_f430(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l3; + var_i2 = 1u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i1 = var_l12; + var_i2 = 1u; + var_i1 += var_i2; + } + var_l2 = var_i1; + goto var_L30; + } + var_i1 = var_l3; + var_i2 = var_l8; + var_i1 += var_i2; + var_i2 = var_l2; + var_i3 = var_l4; + var_i2 += var_i3; + var_i3 = var_l5; + var_i4 = var_l2; + var_i3 -= var_i4; + var_i4 = var_l14; + var_i5 = var_l10; + w2c_highlights_f430(instance, var_i1, var_i2, var_i3, var_i4, var_i5); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l4; + if (var_i1) { + var_i1 = var_l4; + w2c_highlights_f413(instance, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i1 = var_l18; + var_i2 = var_l19; + var_i3 = var_l7; + w2c_highlights_f422(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i1 = var_l26; + var_i1 = !(var_i1); + if (var_i1) { + var_i1 = var_l21; + var_i2 = var_l22; + var_i3 = var_l27; + w2c_highlights_f422(instance, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i1 = var_l11; + var_i2 = 1u; + var_i1 <<= (var_i2 & 31); + var_i2 = var_l25; + var_i1 |= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u, var_i1); + goto var_L4; + } + var_i0 = 46160u; + var_i1 = 0u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l20; + var_i1 = var_l24; + var_i0 += var_i1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = 3u; + var_i0 <<= (var_i1 & 31); + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i0 = 0u; + var_p1 = var_i0; + var_L35: + var_i0 = var_p1; + var_i1 = var_l24; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_p0; + var_i1 = 4u; + var_i0 += var_i1; + var_i1 = var_p1; + var_i2 = 24u; + var_i1 *= var_i2; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l3 = var_i0; + var_i1 = 1u; + var_i0 &= var_i1; + var_l7 = var_i0; + var_i0 = var_l3; + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + var_l8 = var_i0; + var_i0 = var_l4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = var_l4; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 -= var_i1; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = var_l7; + var_i0 += var_i1; + var_l2 = var_i0; + var_i0 = var_l4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l7; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = var_l4; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = 1u; + var_i0 += var_i1; + var_l5 = var_i0; + var_L37: + var_i0 = var_l16; + var_i1 = var_l20; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B38;} + var_i0 = var_l17; + var_i1 = var_l16; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l7 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_i0 = var_l7; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l4 = var_i0; + var_i0 = var_l3; + var_i1 = var_l5; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B38;} + var_i0 = var_l3; + var_i1 = var_l4; + var_i2 = var_l9; + var_i3 = var_l4; + var_i4 = var_l9; + var_i3 = var_i3 < var_i4; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i2 = var_l23; + var_i3 = var_l6; + var_i4 = var_l13; + var_i0 = w2c_highlights_f435(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l13 = var_i0; + var_i0 = var_l4; + var_i1 = var_l5; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = var_l5; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } else { + var_i0 = var_l16; + var_i1 = 1u; + var_i0 += var_i1; + var_l16 = var_i0; + goto var_L37; + } + var_B38:; + var_i0 = var_l8; + var_i1 = var_l9; + var_i2 = var_l23; + var_i1 += var_i2; + var_l7 = var_i1; + var_i0 += var_i1; + var_l4 = var_i0; + var_i0 = var_l9; + var_i1 = var_l5; + var_i2 = var_l7; + var_i3 = var_l4; + var_i0 = w2c_highlights_f431(instance, var_i0, var_i1, var_i2, var_i3); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l6; + var_i1 = var_l13; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = var_l7; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l3; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l13; + var_i1 = 1u; + var_i0 += var_i1; + var_l13 = var_i0; + } else { + var_i0 = var_l4; + var_i1 = var_l6; + var_i2 = var_l13; + var_i3 = 1u; + var_i2 -= var_i3; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_l3 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = var_l4; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + } + } + var_i0 = var_l23; + var_i1 = var_l8; + var_i2 = var_l2; + var_i1 -= var_i2; + var_i0 += var_i1; + var_l23 = var_i0; + var_i0 = var_p1; + var_i1 = 1u; + var_i0 += var_i1; + var_p1 = var_i0; + goto var_L35; + } + var_L42: + var_i0 = var_l16; + var_i1 = var_l20; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l17; + var_i1 = var_l16; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_p1 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = var_l23; + var_i3 = var_l6; + var_i4 = var_l13; + var_i0 = w2c_highlights_f435(instance, var_i0, var_i1, var_i2, var_i3, var_i4); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l13 = var_i0; + var_i0 = var_l16; + var_i1 = 1u; + var_i0 += var_i1; + var_l16 = var_i0; + goto var_L42; + } + var_i0 = var_l17; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l6; + instance->w2c_g116 = var_i0; + var_i0 = var_l13; + instance->w2c_g117 = var_i0; + var_i0 = 0u; + instance->w2c_g118 = var_i0; + var_i0 = 0u; + instance->w2c_g119 = var_i0; + var_i0 = 0u; + instance->w2c_g123 = var_i0; + var_i0 = 4294967295u; + instance->w2c_g98 = var_i0; + var_i0 = var_l13; + if (var_i0) { + var_i0 = var_l6; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g121 = var_i0; + var_i0 = var_l6; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + instance->w2c_g120 = var_i0; + var_i0 = instance->w2c_g121; + if (var_i0) { + var_i0 = instance->w2c_g121; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + } else { + var_i0 = 0u; + } + instance->w2c_g107 = var_i0; + var_i0 = 1u; + instance->w2c_g122 = var_i0; + } else { + w2c_highlights_f433(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + FUNC_EPILOGUE; +} + +u32 w2c_highlights_liveRun_0(w2c_highlights* instance, u32 var_p0, u32 var_p1, u32 var_p2) { + u32 var_l3 = 0, var_l4 = 0, var_l5 = 0, var_l6 = 0, var_l7 = 0, var_l8 = 0, var_l9 = 0, var_l10 = 0, + var_l11 = 0, var_l12 = 0, var_l13 = 0, var_l14 = 0, var_l15 = 0, var_l16 = 0, var_l17 = 0, var_l18 = 0, + var_l19 = 0, var_l20 = 0, var_l21 = 0; + u64 var_l22 = 0; + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2, var_i3, var_i4; + u64 var_j0, var_j1, var_j2, var_j3; + v128 var_o0; + var_i0 = instance->w2c_g122; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 0u; + goto var_Bfunc; + } + var_L1: + var_i0 = var_p1; + var_i1 = 0u; + var_i0 = var_i0 != var_i1; + var_i1 = instance->w2c_g121; + var_i2 = var_p1; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 -= var_i1; + var_p0 = var_i0; + var_i0 = instance->w2c_g121; + var_l18 = var_i0; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l21 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + var_l19 = var_i0; + var_i0 = var_l18; + var_i0 = !(var_i0); + var_l7 = var_i0; + var_i0 = 0u; + var_l10 = var_i0; + var_i0 = 0u; + var_l15 = var_i0; + var_i0 = var_l18; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l13 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + var_l20 = var_i0; + var_i0 = var_l13; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l14 = var_i0; + var_i0 = var_l13; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = 16777216u; + var_i0 = var_i0 >= var_i1; + var_l16 = var_i0; + var_i0 = instance->w2c_g108; + if (var_i0) { + var_i0 = 0u; + var_l7 = var_i0; + } else { + var_i0 = var_l14; + var_i1 = var_l20; + var_i2 = 3u; + var_i1 &= var_i2; + var_l11 = var_i1; + var_i0 += var_i1; + var_l12 = var_i0; + var_i1 = instance->w2c_g84; + var_i2 = 16u; + var_i1 += var_i2; + var_l5 = var_i1; + var_i0 += var_i1; + var_i1 = 4294967232u; + var_i0 -= var_i1; + w2c_highlights_f409(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l7; + if (var_i0) { + w2c_highlights_f448(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f230(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 4294967295u; + instance->w2c_g21 = var_i0; + var_i0 = 0u; + instance->w2c_g70 = var_i0; + var_i0 = 0u; + instance->w2c_g78 = var_i0; + var_i0 = 0u; + instance->w2c_g33 = var_i0; + } else { + var_i0 = instance->w2c_g98; + var_i1 = instance->w2c_g107; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = instance->w2c_g89; + var_i1 = instance->w2c_g107; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = var_l5; + var_i1 = 9936u; + var_i0 += var_i1; + w2c_highlights_f409(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l5; + var_i1 = 0u; + var_i2 = 9936u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l5; + var_i1 = var_l10; + var_i2 = 24u; + var_i1 += var_i2; + var_i2 = var_l10; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2) + 8u); + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l17 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l4 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_l6 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + instance->w2c_g25 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + instance->w2c_g26 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + instance->w2c_g27 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + instance->w2c_g28 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u); + instance->w2c_g29 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u); + instance->w2c_g30 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 36u); + instance->w2c_g31 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 40u); + instance->w2c_g21 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 44u); + instance->w2c_g70 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 48u); + instance->w2c_g71 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 52u); + instance->w2c_g72 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 56u); + instance->w2c_g73 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 60u); + instance->w2c_g80 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 64u); + instance->w2c_g81 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 68u); + instance->w2c_g82 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 72u); + instance->w2c_g78 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 76u); + instance->w2c_g51 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 80u); + instance->w2c_g52 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 84u); + instance->w2c_g59 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 88u); + instance->w2c_g53 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 92u); + instance->w2c_g54 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 96u); + instance->w2c_g58 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 100u); + instance->w2c_g55 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 104u); + instance->w2c_g57 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 108u); + instance->w2c_g60 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 112u); + instance->w2c_g62 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 116u); + instance->w2c_g63 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 120u); + instance->w2c_g64 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 124u); + instance->w2c_g65 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 128u); + instance->w2c_g66 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 132u); + instance->w2c_g36 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 136u); + instance->w2c_g37 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 140u); + instance->w2c_g38 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 144u); + instance->w2c_g39 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 148u); + instance->w2c_g40 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 152u); + instance->w2c_g41 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 156u); + instance->w2c_g42 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 160u); + instance->w2c_g45 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 164u); + instance->w2c_g46 = var_i0; + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 168u); + instance->w2c_g56 = var_i0; + var_i0 = var_l17; + instance->w2c_g33 = var_i0; + var_i0 = 12416u; + var_i1 = var_l5; + var_i2 = 172u; + var_i1 += var_i2; + var_i2 = 32u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 45040u; + var_i1 = var_l5; + var_i2 = 204u; + var_i1 += var_i2; + var_i2 = 96u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l5; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 300u); + instance->w2c_g69 = var_i0; + var_i0 = w2c_highlights_f419(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l9 = var_i0; + var_i1 = var_l5; + var_i2 = 304u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i2 = var_l17; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l3; + var_i1 = var_l17; + var_i0 += var_i1; + var_l8 = var_i0; + var_i0 = var_l9; + var_i1 = 38880u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = 38880u; + var_i1 = var_l8; + var_i2 = instance->w2c_g55; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_l3 = var_i2; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l3; + var_i1 = var_l8; + var_i0 += var_i1; + var_l8 = var_i0; + } + var_i0 = 39904u; + var_i1 = var_l8; + var_i2 = instance->w2c_g56; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_l3 = var_i2; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 37568u; + var_i1 = var_l3; + var_i2 = var_l8; + var_i1 += var_i2; + var_l3 = var_i1; + var_i2 = var_l4; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 40928u; + var_i1 = var_l3; + var_i2 = var_l4; + var_i1 += var_i2; + var_l3 = var_i1; + var_i2 = var_l6; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 12448u; + var_i1 = var_l3; + var_i2 = var_l6; + var_i1 += var_i2; + var_i2 = 1440u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + } + } + var_i0 = 4294967295u; + instance->w2c_g98 = var_i0; + var_i0 = var_l5; + var_i1 = var_l13; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = var_l14; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l11; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l14; + var_i0 += var_i1; + var_i1 = 2573u; + i32_store16_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } else { + var_i0 = var_l11; + if (var_i0) { + var_i0 = var_l5; + var_i1 = var_l14; + var_i0 += var_i1; + var_i1 = 10u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + } + var_i0 = var_l5; + var_i1 = var_l12; + var_i0 += var_i1; + var_i1 = 0u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 1u; + var_i1 = 3u; + i32_store8_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = 2u; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l5; + instance->w2c_g0 = var_i0; + var_i0 = 1u; + instance->w2c_g22 = var_i0; + var_i0 = var_l7; + instance->w2c_g23 = var_i0; + var_i0 = var_l5; + var_i1 = 0u; + var_i2 = var_l7; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g1 = var_i0; + var_i0 = 0u; + instance->w2c_g24 = var_i0; + w2c_highlights_f33(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l7; + w2c_highlights_f17(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 1u; + instance->w2c_g108 = var_i0; + } + var_i0 = instance->w2c_g108; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g4; + var_i1 = var_p2; + var_i0 += var_i1; + var_i1 = 2147483647u; + var_i2 = var_p2; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g5 = var_i0; + var_i0 = instance->w2c_g97; + var_i1 = var_l7; + w2c_highlights_f449(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 2147483647u; + instance->w2c_g5 = var_i0; + var_i0 = 4294967295u; + var_i1 = instance->w2c_g6; + if (var_i1) {goto var_B4;} + w2c_highlights_f18(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g22 = var_i0; + var_i0 = 0u; + instance->w2c_g24 = var_i0; + var_i0 = instance->w2c_g8; + var_i1 = 6u; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_l11 = var_i1; + var_i0 -= var_i1; + var_l17 = var_i0; + var_i0 = var_l11; + var_i1 = var_l17; + var_i0 += var_i1; + var_i1 = 7u; + var_i0 += var_i1; + var_i1 = 4294967288u; + var_i0 &= var_i1; + var_l4 = var_i0; + var_i1 = 10016u; + var_i0 += var_i1; + w2c_highlights_f409(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = w2c_highlights_f419(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_l3 = var_i0; + var_i0 = instance->w2c_g33; + var_i1 = instance->w2c_g55; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i2 = var_l3; + var_i3 = 38880u; + var_i2 = var_i2 != var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i1 = 1024u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 1024u; + var_l3 = var_i0; + } + var_i0 = var_l4; + var_i1 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g57; + var_l6 = var_i0; + var_i1 = 1024u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 1024u; + var_l6 = var_i0; + } + var_i0 = var_l4; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = instance->w2c_g60; + var_i1 = 3u; + var_i0 <<= (var_i1 & 31); + var_l8 = var_i0; + var_i1 = 4096u; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 4096u; + var_l8 = var_i0; + } + var_i0 = var_l4; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g25; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g26; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g27; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g28; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g29; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 28u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g30; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 32u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g31; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 36u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g21; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 40u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g70; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 44u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g71; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 48u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g72; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 52u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g73; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 56u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g80; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 60u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g81; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 64u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g82; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 68u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g78; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 72u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g51; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 76u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g52; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 80u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g59; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 84u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g53; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 88u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g54; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 92u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g58; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 96u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g55; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 100u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g57; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 104u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g60; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 108u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g62; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 112u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g63; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 116u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g64; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 120u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g65; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 124u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g66; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 128u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g36; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 132u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g37; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 136u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g38; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 140u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g39; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 144u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g40; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 148u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g41; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 152u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g42; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 156u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g45; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 160u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g46; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 164u, var_i1); + var_i0 = var_l4; + var_i1 = instance->w2c_g56; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 168u, var_i1); + var_i0 = var_l4; + var_i1 = 172u; + var_i0 += var_i1; + var_i1 = 12416u; + var_i2 = 32u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l4; + var_i1 = 204u; + var_i0 += var_i1; + var_i1 = 45040u; + var_i2 = 96u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l4; + var_i1 = instance->w2c_g69; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 300u, var_i1); + var_i0 = var_l4; + var_i1 = 304u; + var_i0 += var_i1; + var_l9 = var_i0; + var_i1 = var_l12; + var_i2 = var_l3; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l3; + var_i1 = var_l9; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = var_l12; + var_i1 = 38880u; + var_i0 = var_i0 != var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 38880u; + var_i2 = instance->w2c_g55; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_l9 = var_i2; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l3; + var_i1 = var_l9; + var_i0 += var_i1; + var_l3 = var_i0; + } + var_i0 = var_l3; + var_i1 = 39904u; + var_i2 = instance->w2c_g56; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_l9 = var_i2; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l3; + var_i1 = var_l9; + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = 37568u; + var_i2 = var_l6; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l3; + var_i1 = var_l6; + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = 40928u; + var_i2 = var_l8; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l3; + var_i1 = var_l8; + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = 12448u; + var_i2 = 1440u; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l4; + var_i1 = var_l3; + var_i2 = 1440u; + var_i1 += var_i2; + var_i2 = var_l4; + var_i1 -= var_i2; + var_i0 += var_i1; + var_l3 = var_i0; + var_L16: + var_i0 = var_l3; + var_i1 = var_l4; + var_i0 -= var_i1; + var_i1 = 16u; + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_B17;} + var_i0 = var_l3; + var_i1 = 16u; + var_i0 -= var_i1; + var_l9 = var_i0; + var_o0 = v128_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i0 = simde_wasm_v128_any_true(var_o0); + if (var_i0) {goto var_B17;} + var_i0 = var_l9; + var_l3 = var_i0; + goto var_L16; + var_B17:; + var_L18: + var_i0 = var_l3; + var_i1 = var_l4; + var_i0 = var_i0 <= var_i1; + if (var_i0) {goto var_B19;} + var_i0 = var_l3; + var_i1 = 1u; + var_i0 -= var_i1; + var_l9 = var_i0; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + if (var_i0) {goto var_B19;} + var_i0 = var_l9; + var_l3 = var_i0; + goto var_L18; + var_B19:; + var_i0 = var_l11; + instance->w2c_g87 = var_i0; + var_i0 = var_l3; + var_i1 = var_l4; + var_i0 -= var_i1; + var_l8 = var_i0; + var_i1 = var_l4; + var_i0 += var_i1; + instance->w2c_g88 = var_i0; + var_i0 = var_l7; + var_i0 = !(var_i0); + var_i1 = instance->w2c_g107; + var_i2 = instance->w2c_g91; + var_i1 = var_i1 < var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g89; + var_i1 = instance->w2c_g107; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + var_i1 = var_l8; + var_i0 = var_i0 == var_i1; + var_i1 = var_l10; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + var_i1 = var_l10; + var_i2 = 1u; + var_i1 &= var_i2; + var_i1 = I32_CLZ(var_i1); + var_i2 = 5u; + var_i1 >>= (var_i2 & 31); + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l10; + var_i1 = 24u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i2 = var_l8; + var_i0 = w2c_highlights_f415(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l10; + var_i1 = var_l10; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 1u; + var_i1 += var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = instance->w2c_g107; + var_l15 = var_i0; + } + } + } + var_i0 = var_l15; + var_i0 = !(var_i0); + if (var_i0) { + var_j0 = 14695981039346656037ull; + var_l22 = var_j0; + var_i0 = var_l4; + var_l6 = var_i0; + var_i1 = var_l8; + var_i2 = 4294967288u; + var_i1 &= var_i2; + var_i0 += var_i1; + var_l3 = var_i0; + var_L25: + var_i0 = var_l3; + var_i1 = var_l6; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_j0 = var_l22; + var_i1 = var_l6; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j0 ^= var_j1; + var_j1 = 1099511628211ull; + var_j0 *= var_j1; + var_l22 = var_j0; + var_i0 = var_l6; + var_i1 = 8u; + var_i0 += var_i1; + var_l6 = var_i0; + goto var_L25; + } + var_i0 = var_l8; + var_i1 = 7u; + var_i0 &= var_i1; + var_l3 = var_i0; + if (var_i0) { + var_j0 = var_l22; + var_i1 = var_l6; + var_j1 = i64_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_j2 = 18446744073709551615ull; + var_i3 = 8u; + var_i4 = var_l3; + var_i3 -= var_i4; + var_i4 = 3u; + var_i3 <<= (var_i4 & 31); + var_j3 = (u64)(var_i3); + var_j2 >>= (var_j3 & 63); + var_j1 &= var_j2; + var_j0 ^= var_j1; + var_j1 = 1099511628211ull; + var_j0 *= var_j1; + var_l22 = var_j0; + } + var_j0 = var_l22; + var_j1 = 32ull; + var_j0 >>= (var_j1 & 63); + var_i0 = (u32)(var_j0); + var_l12 = var_i0; + var_i0 = instance->w2c_g93; + var_j1 = var_l22; + var_i1 = (u32)(var_j1); + var_l11 = var_i1; + var_i2 = instance->w2c_g94; + var_i1 &= var_i2; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + var_L28: + var_i0 = var_l6; + if (var_i0) { + var_i0 = var_l6; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + var_i1 = var_l11; + var_i0 = var_i0 == var_i1; + var_i1 = var_l6; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 16u); + var_i2 = var_l12; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + var_i1 = var_l6; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 8u); + var_i2 = var_l8; + var_i1 = var_i1 == var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = 24u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i2 = var_l8; + var_i0 = w2c_highlights_f415(instance, var_i0, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + var_i0 = var_l6; + var_i1 = var_l6; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = 1u; + var_i1 += var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l6; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + goto var_B24; + } + } + var_i0 = var_l6; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l6 = var_i0; + goto var_L28; + } + var_i0 = instance->w2c_g87; + var_l3 = var_i0; + var_i0 = var_l8; + var_i1 = 24u; + var_i0 += var_i1; + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l6 = var_i0; + var_i1 = 24u; + var_i0 += var_i1; + var_i1 = var_l4; + var_i2 = instance->w2c_g87; + var_i3 = var_l3; + var_i2 -= var_i3; + var_i1 += var_i2; + var_i2 = var_l8; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g92; + if (var_i0) { + var_i0 = instance->w2c_g89; + var_i1 = instance->w2c_g92; + var_l3 = var_i1; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 1u; + var_i0 >>= (var_i1 & 31); + instance->w2c_g92 = var_i0; + } else { + var_i0 = instance->w2c_g91; + var_i1 = instance->w2c_g90; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g90; + var_i1 = 3u; + var_i0 <<= (var_i1 & 31); + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l9 = var_i0; + var_i1 = instance->w2c_g89; + var_i2 = instance->w2c_g90; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_l3 = var_i2; + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = var_l3; + var_i1 = var_l9; + var_i0 += var_i1; + var_i1 = 0u; + var_i2 = var_l3; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = instance->w2c_g89; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l9; + instance->w2c_g89 = var_i0; + var_i0 = instance->w2c_g90; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + instance->w2c_g90 = var_i0; + } + var_i0 = instance->w2c_g91; + var_l3 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g91 = var_i0; + } + var_i0 = instance->w2c_g89; + var_i1 = var_l3; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l6; + var_i1 = instance->w2c_g93; + var_i2 = var_l11; + var_i3 = instance->w2c_g94; + var_i2 &= var_i3; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_l7 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l6; + var_i1 = 1u; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l6; + var_i1 = var_l8; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u, var_i1); + var_i0 = var_l6; + var_i1 = var_l11; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = var_l6; + var_i1 = var_l12; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u, var_i1); + var_i0 = var_l6; + var_i1 = var_l3; + var_l9 = var_i1; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u, var_i1); + var_i0 = var_l7; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = instance->w2c_g95; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g95 = var_i0; + var_i0 = instance->w2c_g96; + var_i1 = var_l8; + var_i0 += var_i1; + instance->w2c_g96 = var_i0; + var_i0 = instance->w2c_g95; + var_i1 = instance->w2c_g94; + var_i2 = 1u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i2 = var_l3; + var_i3 = 2u; + var_i2 >>= (var_i3 & 31); + var_i1 -= var_i2; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = 0u; + var_l6 = var_i0; + var_i0 = instance->w2c_g94; + var_i1 = 1u; + var_i0 <<= (var_i1 & 31); + var_i1 = 1u; + var_i0 += var_i1; + var_l11 = var_i0; + var_i1 = 1u; + var_i0 += var_i1; + var_i1 = 2u; + var_i0 <<= (var_i1 & 31); + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_l12 = var_i0; + var_i1 = 0u; + var_i2 = var_l11; + var_i3 = 1u; + var_i2 += var_i3; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_L35: + var_i0 = instance->w2c_g94; + var_i1 = var_l6; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g93; + var_i1 = var_l6; + var_i2 = 2u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l3 = var_i0; + var_L37: + var_i0 = var_l3; + if (var_i0) { + var_i0 = var_l3; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l3; + var_i2 = var_l12; + var_i3 = var_l3; + var_i3 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i3) + 12u); + var_i4 = var_l11; + var_i3 &= var_i4; + var_i4 = 2u; + var_i3 <<= (var_i4 & 31); + var_i2 += var_i3; + var_l7 = var_i2; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1), var_i2); + var_i1 = var_l7; + var_i2 = var_l3; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1), var_i2); + var_l3 = var_i0; + goto var_L37; + } + var_i0 = var_l6; + var_i1 = 1u; + var_i0 += var_i1; + var_l6 = var_i0; + goto var_L35; + } + var_i0 = instance->w2c_g93; + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l12; + instance->w2c_g93 = var_i0; + var_i0 = var_l11; + instance->w2c_g94 = var_i0; + } + var_i0 = var_l9; + var_B24:; + var_l15 = var_i0; + } + var_i0 = var_l15; + instance->w2c_g98 = var_i0; + var_i0 = var_l15; + instance->w2c_g115 = var_i0; + var_i0 = 0u; + instance->w2c_g109 = var_i0; + var_i0 = var_l17; + var_i1 = 0u; + var_i2 = var_l14; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g110 = var_i0; + var_i0 = 0u; + instance->w2c_g111 = var_i0; + var_i0 = 0u; + instance->w2c_g112 = var_i0; + var_i0 = 0u; + instance->w2c_g113 = var_i0; + var_i0 = instance->w2c_g110; + if (var_i0) { + var_i0 = var_l17; + var_i1 = var_l16; + var_i1 = !(var_i1); + var_i0 >>= (var_i1 & 31); + var_i0 = w2c_highlights_f412(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + instance->w2c_g114 = var_i0; + } + var_i0 = 2u; + instance->w2c_g108 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_p2; + if (var_i1) {goto var_B4;} + } + var_i0 = var_p2; + var_i1 = 2147483647u; + var_i2 = var_p2; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l8 = var_i0; + var_L40: + var_i0 = instance->w2c_g109; + var_i1 = instance->w2c_g110; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = 4294967295u; + var_i1 = var_l8; + var_i2 = 0u; + var_i1 = (u32)((s32)var_i1 <= (s32)var_i2); + if (var_i1) {goto var_B4;} + var_i0 = instance->w2c_g87; + var_i1 = instance->w2c_g109; + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_i0 = var_l3; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + var_l6 = var_i0; + var_i0 = var_l14; + var_i1 = var_l9; + var_i2 = var_l9; + var_i3 = var_l14; + var_i2 = var_i2 > var_i3; + var_i0 = var_i2 ? var_i0 : var_i1; + var_l3 = var_i0; + var_i1 = instance->w2c_g111; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = instance->w2c_g111; + var_i1 = var_l8; + var_i0 += var_i1; + var_l7 = var_i0; + var_i1 = var_l3; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l3; + var_l7 = var_i0; + } + var_i0 = var_l13; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l9 = var_i0; + var_L44: + var_i0 = var_l7; + var_i1 = var_l14; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B45;} + var_i0 = var_l7; + var_i1 = var_l9; + var_i0 += var_i1; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = 192u; + var_i0 &= var_i1; + var_i1 = 128u; + var_i0 = var_i0 != var_i1; + if (var_i0) {goto var_B45;} + var_i0 = var_l7; + var_i1 = 1u; + var_i0 += var_i1; + var_l7 = var_i0; + goto var_L44; + var_B45:; + var_i0 = instance->w2c_g112; + var_i1 = var_l9; + var_i2 = instance->w2c_g111; + var_i1 += var_i2; + var_i2 = var_l7; + var_i3 = instance->w2c_g111; + var_i2 -= var_i3; + var_i1 = w2c_highlights_f423(instance, var_i1, var_i2); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 += var_i1; + instance->w2c_g112 = var_i0; + var_i0 = var_l8; + var_i1 = var_l7; + var_i2 = instance->w2c_g111; + var_i1 -= var_i2; + var_i0 -= var_i1; + var_l8 = var_i0; + var_i0 = var_l7; + instance->w2c_g111 = var_i0; + var_i0 = 4294967295u; + var_i1 = var_l3; + var_i2 = var_l7; + var_i1 = var_i1 > var_i2; + if (var_i1) {goto var_B4;} + } + var_i0 = instance->w2c_g114; + var_i1 = instance->w2c_g113; + var_i2 = 3u; + var_i3 = 2u; + var_i4 = var_l16; + var_i2 = var_i4 ? var_i2 : var_i3; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = instance->w2c_g113; + if (var_i0) { + var_i0 = var_l3; + var_i1 = 8u; + var_i2 = 4u; + var_i3 = var_l16; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 -= var_i1; + var_l10 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_l10; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i2 = 16777215u; + var_i1 &= var_i2; + var_i2 = var_l16; + var_i0 = var_i2 ? var_i0 : var_i1; + } else { + var_i0 = 0u; + } + var_i1 = instance->w2c_g112; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l6; + var_i1 = var_l10; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i2 = var_l10; + var_i2 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i2)); + var_i3 = 24u; + var_i2 >>= (var_i3 & 31); + var_i3 = var_l16; + var_i1 = var_i3 ? var_i1 : var_i2; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g113; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g113; + var_i1 = 1u; + var_i0 -= var_i1; + instance->w2c_g113 = var_i0; + var_i0 = var_l10; + var_l3 = var_i0; + } + var_i0 = var_l16; + if (var_i0) { + var_i0 = var_l3; + var_i1 = instance->w2c_g112; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + var_i0 = var_l3; + var_i1 = var_l6; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + } else { + var_i0 = var_l3; + var_i1 = instance->w2c_g112; + var_i2 = var_l6; + var_i3 = 24u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + } + var_i0 = instance->w2c_g113; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g113 = var_i0; + } + var_i0 = instance->w2c_g109; + var_i1 = 8u; + var_i0 += var_i1; + instance->w2c_g109 = var_i0; + var_i0 = var_l8; + var_i1 = 1u; + var_i0 -= var_i1; + var_l8 = var_i0; + goto var_L40; + } + var_i0 = 0u; + instance->w2c_g87 = var_i0; + var_i0 = 0u; + instance->w2c_g88 = var_i0; + var_i0 = var_l13; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + w2c_highlights_f413(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_l13; + var_i1 = instance->w2c_g114; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = var_l13; + var_i1 = instance->w2c_g113; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u, var_i1); + var_i0 = var_l13; + var_i1 = var_l20; + var_i2 = 4294967291u; + var_i1 &= var_i2; + var_i2 = var_l16; + var_i3 = 2u; + var_i2 <<= (var_i3 & 31); + var_i1 |= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u, var_i1); + var_i0 = instance->w2c_g115; + instance->w2c_g107 = var_i0; + var_i0 = 0u; + instance->w2c_g115 = var_i0; + var_i0 = 0u; + instance->w2c_g114 = var_i0; + var_i0 = 0u; + instance->w2c_g108 = var_i0; + var_i0 = instance->w2c_g107; + var_B4:; + var_l9 = var_i0; + var_i1 = 4294967295u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1u; + goto var_Bfunc; + } + var_i0 = var_l21; + var_i1 = var_l9; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u, var_i1); + var_i0 = var_l19; + w2c_highlights_f416(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g123; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g123 = var_i0; + var_i0 = var_l18; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g121 = var_i0; + var_L51: + var_i0 = instance->w2c_g118; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = instance->w2c_g117; + var_i0 = var_i0 >= var_i1; + if (var_i0) {goto var_B52;} + var_i0 = instance->w2c_g121; + var_i1 = instance->w2c_g116; + var_i2 = var_l3; + var_i3 = 3u; + var_i2 <<= (var_i3 & 31); + var_i1 += var_i2; + var_l3 = var_i1; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1)); + var_i0 = var_i0 < var_i1; + if (var_i0) {goto var_B52;} + var_i0 = instance->w2c_g120; + var_i1 = var_l3; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 4u); + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + instance->w2c_g120 = var_i0; + } + var_i0 = instance->w2c_g118; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g118 = var_i0; + var_i0 = 46160u; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_l10 = var_i0; + var_i0 = instance->w2c_g119; + var_l3 = var_i0; + var_i1 = 4u; + var_i0 <<= (var_i1 & 31); + var_i1 = 46164u; + var_i0 += var_i1; + var_l7 = var_i0; + var_i1 = var_l7; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 20u); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u, var_i1); + var_i0 = var_l7; + var_i1 = var_l7; + var_i1 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i1) + 28u); + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u, var_i1); + var_i0 = var_l10; + var_i1 = var_l3; + var_i2 = 2u; + var_i1 += var_i2; + var_l3 = var_i1; + var_i0 = var_i0 > var_i1; + if (var_i0) { + var_i0 = var_l7; + var_i1 = 16u; + var_i0 += var_i1; + var_i1 = var_l7; + var_i2 = 32u; + var_i1 += var_i2; + var_i2 = var_l10; + var_i3 = var_l3; + var_i2 -= var_i3; + var_i3 = 4u; + var_i2 <<= (var_i3 & 31); + memory_copy(&instance->w2c_memory, &instance->w2c_memory, var_i0, var_i1, var_i2); + } + var_i0 = 46160u; + var_i1 = var_l10; + var_i2 = 1u; + var_i1 -= var_i2; + i32_store_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0), var_i1); + goto var_L51; + var_B52:; + var_i0 = instance->w2c_g121; + var_i1 = instance->w2c_g101; + var_i0 = var_i0 >= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g121; + w2c_highlights_f432(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f433(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + goto var_Bfunc; + } + var_i0 = var_l9; + var_i1 = var_l19; + var_i0 = var_i0 == var_i1; + var_i1 = instance->w2c_g121; + var_i2 = instance->w2c_g120; + var_i1 = var_i1 >= var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = instance->w2c_g121; + w2c_highlights_f432(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = instance->w2c_g118; + var_i1 = 1u; + var_i0 += var_i1; + var_l3 = var_i0; + var_i1 = instance->w2c_g117; + var_i0 = var_i0 < var_i1; + if (var_i0) { + var_i0 = var_l3; + instance->w2c_g118 = var_i0; + var_i0 = instance->w2c_g119; + var_i1 = 1u; + var_i0 += var_i1; + instance->w2c_g119 = var_i0; + var_i0 = instance->w2c_g116; + var_i1 = instance->w2c_g118; + var_i2 = 3u; + var_i1 <<= (var_i2 & 31); + var_i0 += var_i1; + var_l3 = var_i0; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + instance->w2c_g121 = var_i0; + var_i0 = var_l3; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + instance->w2c_g120 = var_i0; + var_i0 = instance->w2c_g121; + var_i1 = 1u; + var_i0 -= var_i1; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 20u); + instance->w2c_g107 = var_i0; + } else { + w2c_highlights_f433(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + goto var_Bfunc; + } + } + goto var_L1; + UNREACHABLE; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveLineCount_0(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = instance->w2c_g101; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveLineLen_0(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 8u); + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveLineByteLen_0(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 4u); + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveLineTextPtr_0(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveLineFlags_0(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 24u); + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveLineTokPtr_0(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 12u); + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveLineTokCount_0(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = var_p0; + var_i0 = w2c_highlights_f420(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = i32_load_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0) + 16u); + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveChangesPtr_0(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 46160u; + FUNC_EPILOGUE; + return var_i0; +} + +u32 w2c_highlights_liveStats_0(w2c_highlights* instance, u32 var_p0) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1; + var_i0 = var_p0; + var_i0 = !(var_i0); + if (var_i0) { + var_i0 = instance->w2c_g123; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 1u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g95; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 2u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g96; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 3u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g85; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 4u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g86; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 5u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g106; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 6u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = 1440u; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 7u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g83; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 8u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g84; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 9u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g122; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 10u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g121; + goto var_Bfunc; + } + var_i0 = var_p0; + var_i1 = 11u; + var_i0 = var_i0 == var_i1; + if (var_i0) { + var_i0 = instance->w2c_g119; + goto var_Bfunc; + } + var_i0 = 0u; + var_Bfunc:; + FUNC_EPILOGUE; + return var_i0; +} + +void w2c_highlights_highlight_0(w2c_highlights* instance) { + v128 var_l0 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0; + var_i0 = 65536u; + instance->w2c_g0 = var_i0; + var_i0 = 65536u; + instance->w2c_g1 = var_i0; + var_i0 = 0u; + instance->w2c_g22 = var_i0; + var_i0 = 0u; + instance->w2c_g24 = var_i0; + w2c_highlights_f36(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f33(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + CALL_INDIRECT(instance->w2c_T0, void (*)(void*), w2c_highlights_t1, var_i0, instance->w2c_T0.data[var_i0].module_instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f35(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + FUNC_EPILOGUE; +} + +void w2c_highlights_f448(w2c_highlights* instance) { + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 0u; + instance->w2c_g69 = var_i0; + var_i0 = 12416u; + var_i1 = 0u; + var_i2 = 32u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 12448u; + var_i1 = 0u; + var_i2 = 1440u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 0u; + instance->w2c_g25 = var_i0; + var_i0 = 0u; + instance->w2c_g26 = var_i0; + var_i0 = 0u; + instance->w2c_g27 = var_i0; + var_i0 = 0u; + instance->w2c_g28 = var_i0; + var_i0 = 0u; + instance->w2c_g29 = var_i0; + var_i0 = 0u; + instance->w2c_g30 = var_i0; + var_i0 = 0u; + instance->w2c_g31 = var_i0; + var_i0 = 0u; + instance->w2c_g71 = var_i0; + var_i0 = 0u; + instance->w2c_g72 = var_i0; + var_i0 = 0u; + instance->w2c_g73 = var_i0; + var_i0 = 45040u; + var_i1 = 0u; + var_i2 = 96u; + memory_fill(&instance->w2c_memory, var_i0, var_i1, var_i2); + var_i0 = 0u; + instance->w2c_g80 = var_i0; + var_i0 = 0u; + instance->w2c_g81 = var_i0; + var_i0 = 0u; + instance->w2c_g82 = var_i0; + FUNC_EPILOGUE; +} + +void w2c_highlights_f449(w2c_highlights* instance, u32 var_p0, u32 var_p1) { + v128 var_l2 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 1u; + instance->w2c_g7 = var_i0; + var_i0 = var_p0; + var_i1 = var_p1; + var_i0 = w2c_highlights_f407(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = instance->w2c_g6; + if (var_i0) { + var_i0 = var_p0; + CALL_INDIRECT(instance->w2c_T0, void (*)(void*), w2c_highlights_t1, var_i0, instance->w2c_T0.data[var_i0].module_instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = 0u; + instance->w2c_g7 = var_i0; + var_i0 = var_p1; + if (var_i0) { + w2c_highlights_f36(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + var_i0 = var_p0; + var_i1 = 47u; + var_i0 = var_i0 == var_i1; + var_i1 = var_p0; + var_i2 = 49u; + var_i1 = var_i1 == var_i2; + var_i0 |= var_i1; + var_i1 = w2c_highlights_f211(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i2 = 0u; + var_i1 = var_i1 != var_i2; + var_i0 &= var_i1; + if (var_i0) { + var_i0 = w2c_highlights_f225(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = var_p0; + CALL_INDIRECT(instance->w2c_T0, void (*)(void*), w2c_highlights_t1, var_i0, instance->w2c_T0.data[var_i0].module_instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + goto var_Bfunc; + } + var_i0 = instance->w2c_g30; + if (var_i0) { + var_i0 = var_p0; + var_i0 = w2c_highlights_f408(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + goto var_Bfunc; + } + } + var_i0 = w2c_highlights_f72(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = var_p0; + var_i0 = w2c_highlights_f408(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + if (var_i0) { + goto var_Bfunc; + } + var_i0 = 1u; + instance->w2c_g7 = var_i0; + var_i0 = var_p0; + CALL_INDIRECT(instance->w2c_T0, void (*)(void*), w2c_highlights_t1, var_i0, instance->w2c_T0.data[var_i0].module_instance); +#if WASM_RT_USE_SEGUE_FOR_THIS_MODULE + wasm_rt_segue_write_base(instance->w2c_memory.data); +#endif + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_Bfunc:; + FUNC_EPILOGUE; +} + +void w2c_highlights_highlightStream_0(w2c_highlights* instance, u32 var_p0) { + v128 var_l1 = simde_wasm_i64x2_make(0, 0); + FUNC_PROLOGUE; + uint8_t* const wasm_rt_local_memory_base = (&instance->w2c_memory)->data; + uint64_t wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + (void)wasm_rt_local_memory_base; + (void)wasm_rt_local_memory_size; + u32 var_i0, var_i1, var_i2; + var_i0 = 65536u; + instance->w2c_g0 = var_i0; + var_i0 = 1u; + instance->w2c_g22 = var_i0; + var_i0 = var_p0; + instance->w2c_g23 = var_i0; + var_i0 = 65536u; + var_i1 = 0u; + var_i2 = var_p0; + var_i0 = var_i2 ? var_i0 : var_i1; + instance->w2c_g1 = var_i0; + var_i0 = 0u; + instance->w2c_g24 = var_i0; + var_i0 = var_p0; + if (var_i0) { + w2c_highlights_f448(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + } + w2c_highlights_f33(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = var_p0; + w2c_highlights_f17(instance, var_i0); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + var_i0 = i32_load8_u_default32(wasm_rt_local_memory_base, wasm_rt_local_memory_size, &instance->w2c_memory, (u64)(var_i0)); + var_i1 = var_p0; + w2c_highlights_f449(instance, var_i0, var_i1); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f18(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + w2c_highlights_f35(instance); + wasm_rt_local_memory_size = (&instance->w2c_memory)->size; + var_i0 = 0u; + instance->w2c_g22 = var_i0; + var_i0 = 0u; + instance->w2c_g24 = var_i0; + FUNC_EPILOGUE; +} diff --git a/apps/mobile/modules/t3-highlights/Vendor/highlights/highlights.h b/apps/mobile/modules/t3-highlights/Vendor/highlights/highlights.h new file mode 100644 index 000000000000..837bf0ab64f7 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/highlights/highlights.h @@ -0,0 +1,224 @@ +/* Generated by apps/mobile/scripts/generate-highlights.mts from @pierre/highlights 0.2.0 (highlights.wasm sha256 cf5fc4d83e7c1ddab19d163de096f787f87efe61504909aa469434f61ef51e2e). Do not edit. */ +/* Automatically generated by wasm2c */ +#ifndef HIGHLIGHTS_H_GENERATED_ +#define HIGHLIGHTS_H_GENERATED_ + +#include "wasm-rt.h" + +#include + +#ifndef WASM_RT_CORE_TYPES_DEFINED +#define WASM_RT_CORE_TYPES_DEFINED +typedef uint8_t u8; +typedef int8_t s8; +typedef uint16_t u16; +typedef int16_t s16; +typedef uint32_t u32; +typedef int32_t s32; +typedef uint64_t u64; +typedef int64_t s64; +typedef float f32; +typedef double f64; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct w2c_env; + +typedef struct w2c_highlights { + struct w2c_env* w2c_env_instance; + u32 w2c_g0; + u32 w2c_g1; + u32 w2c_g2; + u32 w2c_g3; + u32 w2c_g4; + u32 w2c_g5; + u32 w2c_g6; + u32 w2c_g7; + u32 w2c_g8; + u32 w2c_g9; + u32 w2c_g10; + u64 w2c_g11; + u32 w2c_g12; + u32 w2c_g13; + u32 w2c_g14; + u32 w2c_g15; + u32 w2c_g16; + u32 w2c_g17; + u32 w2c_g18; + u32 w2c_g19; + u32 w2c_g20; + u32 w2c_g21; + u32 w2c_g22; + u32 w2c_g23; + u32 w2c_g24; + u32 w2c_g25; + u32 w2c_g26; + u32 w2c_g27; + u32 w2c_g28; + u32 w2c_g29; + u32 w2c_g30; + u32 w2c_g31; + u32 w2c_g32; + u32 w2c_g33; + u32 w2c_g34; + u32 w2c_g35; + u32 w2c_g36; + u32 w2c_g37; + u32 w2c_g38; + u32 w2c_g39; + u32 w2c_g40; + u32 w2c_g41; + u32 w2c_g42; + u32 w2c_g43; + u32 w2c_g44; + u32 w2c_g45; + u32 w2c_g46; + u32 w2c_g47; + u32 w2c_g48; + u32 w2c_g49; + u32 w2c_g50; + u32 w2c_g51; + u32 w2c_g52; + u32 w2c_g53; + u32 w2c_g54; + u32 w2c_g55; + u32 w2c_g56; + u32 w2c_g57; + u32 w2c_g58; + u32 w2c_g59; + u32 w2c_g60; + u32 w2c_g61; + u32 w2c_g62; + u32 w2c_g63; + u32 w2c_g64; + u32 w2c_g65; + u32 w2c_g66; + u32 w2c_g67; + u32 w2c_g68; + u32 w2c_g69; + u32 w2c_g70; + u32 w2c_g71; + u32 w2c_g72; + u32 w2c_g73; + u32 w2c_g74; + u32 w2c_g75; + u32 w2c_g76; + u32 w2c_g77; + u32 w2c_g78; + u32 w2c_g79; + u32 w2c_g80; + u32 w2c_g81; + u32 w2c_g82; + u32 w2c_g83; + u32 w2c_g84; + u32 w2c_g85; + u32 w2c_g86; + u32 w2c_g87; + u32 w2c_g88; + u32 w2c_g89; + u32 w2c_g90; + u32 w2c_g91; + u32 w2c_g92; + u32 w2c_g93; + u32 w2c_g94; + u32 w2c_g95; + u32 w2c_g96; + u32 w2c_g97; + u32 w2c_g98; + u32 w2c_g99; + u32 w2c_g100; + u32 w2c_g101; + u32 w2c_g102; + u32 w2c_g103; + u32 w2c_g104; + u32 w2c_g105; + u32 w2c_g106; + u32 w2c_g107; + u32 w2c_g108; + u32 w2c_g109; + u32 w2c_g110; + u32 w2c_g111; + u32 w2c_g112; + u32 w2c_g113; + u32 w2c_g114; + u32 w2c_g115; + u32 w2c_g116; + u32 w2c_g117; + u32 w2c_g118; + u32 w2c_g119; + u32 w2c_g120; + u32 w2c_g121; + u32 w2c_g122; + u32 w2c_g123; + wasm_rt_memory_t w2c_memory; + wasm_rt_funcref_table_t w2c_T0; +} w2c_highlights; + +void wasm2c_highlights_instantiate(w2c_highlights*, struct w2c_env*); +void wasm2c_highlights_free(w2c_highlights*); +wasm_rt_func_type_t wasm2c_highlights_get_func_type(uint32_t param_count, uint32_t result_count, ...); + +/* import: 'env' 'is_id_continue' */ +u32 w2c_env_is_id_continue(struct w2c_env*, u32, u32); +void wasm_tailcall_w2c_env_is_id_continue(void **instance_ptr, void *tail_call_stack, wasm_rt_tailcallee_t *next); + +/* import: 'env' 'is_id_start' */ +u32 w2c_env_is_id_start(struct w2c_env*, u32, u32); +void wasm_tailcall_w2c_env_is_id_start(void **instance_ptr, void *tail_call_stack, wasm_rt_tailcallee_t *next); + +/* export: 'memory' */ +wasm_rt_memory_t* w2c_highlights_memory(w2c_highlights* instance); + +/* export: 'liveStage' */ +u32 w2c_highlights_liveStage(w2c_highlights*, u32); + +/* export: 'liveInitDoc' */ +void w2c_highlights_liveInitDoc(w2c_highlights*, u32, u32, u32); + +/* export: 'liveApplyEdits' */ +void w2c_highlights_liveApplyEdits(w2c_highlights*, u32, u32); + +/* export: 'liveRun' */ +u32 w2c_highlights_liveRun(w2c_highlights*, u32, u32, u32); + +/* export: 'liveLineCount' */ +u32 w2c_highlights_liveLineCount(w2c_highlights*); + +/* export: 'liveLineLen' */ +u32 w2c_highlights_liveLineLen(w2c_highlights*, u32); + +/* export: 'liveLineByteLen' */ +u32 w2c_highlights_liveLineByteLen(w2c_highlights*, u32); + +/* export: 'liveLineTextPtr' */ +u32 w2c_highlights_liveLineTextPtr(w2c_highlights*, u32); + +/* export: 'liveLineFlags' */ +u32 w2c_highlights_liveLineFlags(w2c_highlights*, u32); + +/* export: 'liveLineTokPtr' */ +u32 w2c_highlights_liveLineTokPtr(w2c_highlights*, u32); + +/* export: 'liveLineTokCount' */ +u32 w2c_highlights_liveLineTokCount(w2c_highlights*, u32); + +/* export: 'liveChangesPtr' */ +u32 w2c_highlights_liveChangesPtr(w2c_highlights*); + +/* export: 'liveStats' */ +u32 w2c_highlights_liveStats(w2c_highlights*, u32); + +/* export: 'highlight' */ +void w2c_highlights_highlight(w2c_highlights*); + +/* export: 'highlightStream' */ +void w2c_highlights_highlightStream(w2c_highlights*, u32); + +#ifdef __cplusplus +} +#endif + +#endif /* HIGHLIGHTS_H_GENERATED_ */ diff --git a/apps/mobile/modules/t3-highlights/Vendor/simde/LICENSE b/apps/mobile/modules/t3-highlights/Vendor/simde/LICENSE new file mode 100644 index 000000000000..c7f6b6d752a9 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/simde/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2017 Evan Nemerson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/apps/mobile/modules/t3-highlights/Vendor/simde/wasm/simd128.h b/apps/mobile/modules/t3-highlights/Vendor/simde/wasm/simd128.h new file mode 100644 index 000000000000..046f5b18f030 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/simde/wasm/simd128.h @@ -0,0 +1,17950 @@ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/wasm/simd128.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2021 Evan Nemerson + * 2023 Michael R. Crusoe + */ + +#if !defined(SIMDE_WASM_SIMD128_H) +#define SIMDE_WASM_SIMD128_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/simde-common.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2017-2020 Evan Nemerson + * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) + */ + +#if !defined(SIMDE_COMMON_H) +#define SIMDE_COMMON_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/hedley.h :: */ +/* Hedley - https://nemequ.github.io/hedley + * Created by Evan Nemerson + * + * To the extent possible under law, the author(s) have dedicated all + * copyright and related and neighboring rights to this software to + * the public domain worldwide. This software is distributed without + * any warranty. + * + * For details, see . + * SPDX-License-Identifier: CC0-1.0 + */ + +#if !defined(HEDLEY_VERSION) || (HEDLEY_VERSION < 16) +#if defined(HEDLEY_VERSION) +# undef HEDLEY_VERSION +#endif +#define HEDLEY_VERSION 16 + +#if defined(HEDLEY_STRINGIFY_EX) +# undef HEDLEY_STRINGIFY_EX +#endif +#define HEDLEY_STRINGIFY_EX(x) #x + +#if defined(HEDLEY_STRINGIFY) +# undef HEDLEY_STRINGIFY +#endif +#define HEDLEY_STRINGIFY(x) HEDLEY_STRINGIFY_EX(x) + +#if defined(HEDLEY_CONCAT_EX) +# undef HEDLEY_CONCAT_EX +#endif +#define HEDLEY_CONCAT_EX(a,b) a##b + +#if defined(HEDLEY_CONCAT) +# undef HEDLEY_CONCAT +#endif +#define HEDLEY_CONCAT(a,b) HEDLEY_CONCAT_EX(a,b) + +#if defined(HEDLEY_CONCAT3_EX) +# undef HEDLEY_CONCAT3_EX +#endif +#define HEDLEY_CONCAT3_EX(a,b,c) a##b##c + +#if defined(HEDLEY_CONCAT3) +# undef HEDLEY_CONCAT3 +#endif +#define HEDLEY_CONCAT3(a,b,c) HEDLEY_CONCAT3_EX(a,b,c) + +#if defined(HEDLEY_VERSION_ENCODE) +# undef HEDLEY_VERSION_ENCODE +#endif +#define HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) + +#if defined(HEDLEY_VERSION_DECODE_MAJOR) +# undef HEDLEY_VERSION_DECODE_MAJOR +#endif +#define HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) + +#if defined(HEDLEY_VERSION_DECODE_MINOR) +# undef HEDLEY_VERSION_DECODE_MINOR +#endif +#define HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) + +#if defined(HEDLEY_VERSION_DECODE_REVISION) +# undef HEDLEY_VERSION_DECODE_REVISION +#endif +#define HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) + +#if defined(HEDLEY_GNUC_VERSION) +# undef HEDLEY_GNUC_VERSION +#endif +#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) +# define HEDLEY_GNUC_VERSION HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#elif defined(__GNUC__) +# define HEDLEY_GNUC_VERSION HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) +#endif + +#if defined(HEDLEY_GNUC_VERSION_CHECK) +# undef HEDLEY_GNUC_VERSION_CHECK +#endif +#if defined(HEDLEY_GNUC_VERSION) +# define HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (HEDLEY_GNUC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_MSVC_VERSION) +# undef HEDLEY_MSVC_VERSION +#endif +#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL) +# define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) +#elif defined(_MSC_FULL_VER) && !defined(__ICL) +# define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) +#elif defined(_MSC_VER) && !defined(__ICL) +# define HEDLEY_MSVC_VERSION HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) +#endif + +#if defined(HEDLEY_MSVC_VERSION_CHECK) +# undef HEDLEY_MSVC_VERSION_CHECK +#endif +#if !defined(HEDLEY_MSVC_VERSION) +# define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) +# define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) +#elif defined(_MSC_VER) && (_MSC_VER >= 1200) +# define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) +#else +# define HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) +#endif + +#if defined(HEDLEY_INTEL_VERSION) +# undef HEDLEY_INTEL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL) +# define HEDLEY_INTEL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) +#elif defined(__INTEL_COMPILER) && !defined(__ICL) +# define HEDLEY_INTEL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif + +#if defined(HEDLEY_INTEL_VERSION_CHECK) +# undef HEDLEY_INTEL_VERSION_CHECK +#endif +#if defined(HEDLEY_INTEL_VERSION) +# define HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (HEDLEY_INTEL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_INTEL_CL_VERSION) +# undef HEDLEY_INTEL_CL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL) +# define HEDLEY_INTEL_CL_VERSION HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0) +#endif + +#if defined(HEDLEY_INTEL_CL_VERSION_CHECK) +# undef HEDLEY_INTEL_CL_VERSION_CHECK +#endif +#if defined(HEDLEY_INTEL_CL_VERSION) +# define HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (HEDLEY_INTEL_CL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_PGI_VERSION) +# undef HEDLEY_PGI_VERSION +#endif +#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) +# define HEDLEY_PGI_VERSION HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) +#endif + +#if defined(HEDLEY_PGI_VERSION_CHECK) +# undef HEDLEY_PGI_VERSION_CHECK +#endif +#if defined(HEDLEY_PGI_VERSION) +# define HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (HEDLEY_PGI_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_SUNPRO_VERSION) +# undef HEDLEY_SUNPRO_VERSION +#endif +#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) +# define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) +#elif defined(__SUNPRO_C) +# define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) +#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) +# define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) +#elif defined(__SUNPRO_CC) +# define HEDLEY_SUNPRO_VERSION HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) +#endif + +#if defined(HEDLEY_SUNPRO_VERSION_CHECK) +# undef HEDLEY_SUNPRO_VERSION_CHECK +#endif +#if defined(HEDLEY_SUNPRO_VERSION) +# define HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (HEDLEY_SUNPRO_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_EMSCRIPTEN_VERSION) +# undef HEDLEY_EMSCRIPTEN_VERSION +#endif +#if defined(__EMSCRIPTEN__) +# include +# define HEDLEY_EMSCRIPTEN_VERSION HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) +#endif + +#if defined(HEDLEY_EMSCRIPTEN_VERSION_CHECK) +# undef HEDLEY_EMSCRIPTEN_VERSION_CHECK +#endif +#if defined(HEDLEY_EMSCRIPTEN_VERSION) +# define HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (HEDLEY_EMSCRIPTEN_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_ARM_VERSION) +# undef HEDLEY_ARM_VERSION +#endif +#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) +# define HEDLEY_ARM_VERSION HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) +#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) +# define HEDLEY_ARM_VERSION HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) +#endif + +#if defined(HEDLEY_ARM_VERSION_CHECK) +# undef HEDLEY_ARM_VERSION_CHECK +#endif +#if defined(HEDLEY_ARM_VERSION) +# define HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (HEDLEY_ARM_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_IBM_VERSION) +# undef HEDLEY_IBM_VERSION +#endif +#if defined(__ibmxl__) +# define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) +#elif defined(__xlC__) && defined(__xlC_ver__) +# define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) +#elif defined(__xlC__) +# define HEDLEY_IBM_VERSION HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) +#endif + +#if defined(HEDLEY_IBM_VERSION_CHECK) +# undef HEDLEY_IBM_VERSION_CHECK +#endif +#if defined(HEDLEY_IBM_VERSION) +# define HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (HEDLEY_IBM_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_VERSION) +# undef HEDLEY_TI_VERSION +#endif +#if \ + defined(__TI_COMPILER_VERSION__) && \ + ( \ + defined(__TMS470__) || defined(__TI_ARM__) || \ + defined(__MSP430__) || \ + defined(__TMS320C2000__) \ + ) +# if (__TI_COMPILER_VERSION__ >= 16000000) +# define HEDLEY_TI_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +# endif +#endif + +#if defined(HEDLEY_TI_VERSION_CHECK) +# undef HEDLEY_TI_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_VERSION) +# define HEDLEY_TI_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CL2000_VERSION) +# undef HEDLEY_TI_CL2000_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) +# define HEDLEY_TI_CL2000_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CL2000_VERSION_CHECK) +# undef HEDLEY_TI_CL2000_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CL2000_VERSION) +# define HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL2000_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CL430_VERSION) +# undef HEDLEY_TI_CL430_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) +# define HEDLEY_TI_CL430_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CL430_VERSION_CHECK) +# undef HEDLEY_TI_CL430_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CL430_VERSION) +# define HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL430_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_ARMCL_VERSION) +# undef HEDLEY_TI_ARMCL_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) +# define HEDLEY_TI_ARMCL_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_ARMCL_VERSION_CHECK) +# undef HEDLEY_TI_ARMCL_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_ARMCL_VERSION) +# define HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_ARMCL_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CL6X_VERSION) +# undef HEDLEY_TI_CL6X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) +# define HEDLEY_TI_CL6X_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CL6X_VERSION_CHECK) +# undef HEDLEY_TI_CL6X_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CL6X_VERSION) +# define HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL6X_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CL7X_VERSION) +# undef HEDLEY_TI_CL7X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) +# define HEDLEY_TI_CL7X_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CL7X_VERSION_CHECK) +# undef HEDLEY_TI_CL7X_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CL7X_VERSION) +# define HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CL7X_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TI_CLPRU_VERSION) +# undef HEDLEY_TI_CLPRU_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) +# define HEDLEY_TI_CLPRU_VERSION HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(HEDLEY_TI_CLPRU_VERSION_CHECK) +# undef HEDLEY_TI_CLPRU_VERSION_CHECK +#endif +#if defined(HEDLEY_TI_CLPRU_VERSION) +# define HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (HEDLEY_TI_CLPRU_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_CRAY_VERSION) +# undef HEDLEY_CRAY_VERSION +#endif +#if defined(_CRAYC) +# if defined(_RELEASE_PATCHLEVEL) +# define HEDLEY_CRAY_VERSION HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) +# else +# define HEDLEY_CRAY_VERSION HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) +# endif +#endif + +#if defined(HEDLEY_CRAY_VERSION_CHECK) +# undef HEDLEY_CRAY_VERSION_CHECK +#endif +#if defined(HEDLEY_CRAY_VERSION) +# define HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (HEDLEY_CRAY_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_IAR_VERSION) +# undef HEDLEY_IAR_VERSION +#endif +#if defined(__IAR_SYSTEMS_ICC__) +# if __VER__ > 1000 +# define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) +# else +# define HEDLEY_IAR_VERSION HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0) +# endif +#endif + +#if defined(HEDLEY_IAR_VERSION_CHECK) +# undef HEDLEY_IAR_VERSION_CHECK +#endif +#if defined(HEDLEY_IAR_VERSION) +# define HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (HEDLEY_IAR_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_TINYC_VERSION) +# undef HEDLEY_TINYC_VERSION +#endif +#if defined(__TINYC__) +# define HEDLEY_TINYC_VERSION HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) +#endif + +#if defined(HEDLEY_TINYC_VERSION_CHECK) +# undef HEDLEY_TINYC_VERSION_CHECK +#endif +#if defined(HEDLEY_TINYC_VERSION) +# define HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (HEDLEY_TINYC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_DMC_VERSION) +# undef HEDLEY_DMC_VERSION +#endif +#if defined(__DMC__) +# define HEDLEY_DMC_VERSION HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) +#endif + +#if defined(HEDLEY_DMC_VERSION_CHECK) +# undef HEDLEY_DMC_VERSION_CHECK +#endif +#if defined(HEDLEY_DMC_VERSION) +# define HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (HEDLEY_DMC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_COMPCERT_VERSION) +# undef HEDLEY_COMPCERT_VERSION +#endif +#if defined(__COMPCERT_VERSION__) +# define HEDLEY_COMPCERT_VERSION HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) +#endif + +#if defined(HEDLEY_COMPCERT_VERSION_CHECK) +# undef HEDLEY_COMPCERT_VERSION_CHECK +#endif +#if defined(HEDLEY_COMPCERT_VERSION) +# define HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (HEDLEY_COMPCERT_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_PELLES_VERSION) +# undef HEDLEY_PELLES_VERSION +#endif +#if defined(__POCC__) +# define HEDLEY_PELLES_VERSION HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) +#endif + +#if defined(HEDLEY_PELLES_VERSION_CHECK) +# undef HEDLEY_PELLES_VERSION_CHECK +#endif +#if defined(HEDLEY_PELLES_VERSION) +# define HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (HEDLEY_PELLES_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_MCST_LCC_VERSION) +# undef HEDLEY_MCST_LCC_VERSION +#endif +#if defined(__LCC__) && defined(__LCC_MINOR__) +# define HEDLEY_MCST_LCC_VERSION HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__) +#endif + +#if defined(HEDLEY_MCST_LCC_VERSION_CHECK) +# undef HEDLEY_MCST_LCC_VERSION_CHECK +#endif +#if defined(HEDLEY_MCST_LCC_VERSION) +# define HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (HEDLEY_MCST_LCC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_GCC_VERSION) +# undef HEDLEY_GCC_VERSION +#endif +#if \ + defined(HEDLEY_GNUC_VERSION) && \ + !defined(__clang__) && \ + !defined(HEDLEY_INTEL_VERSION) && \ + !defined(HEDLEY_PGI_VERSION) && \ + !defined(HEDLEY_ARM_VERSION) && \ + !defined(HEDLEY_CRAY_VERSION) && \ + !defined(HEDLEY_TI_VERSION) && \ + !defined(HEDLEY_TI_ARMCL_VERSION) && \ + !defined(HEDLEY_TI_CL430_VERSION) && \ + !defined(HEDLEY_TI_CL2000_VERSION) && \ + !defined(HEDLEY_TI_CL6X_VERSION) && \ + !defined(HEDLEY_TI_CL7X_VERSION) && \ + !defined(HEDLEY_TI_CLPRU_VERSION) && \ + !defined(__COMPCERT__) && \ + !defined(HEDLEY_MCST_LCC_VERSION) +# define HEDLEY_GCC_VERSION HEDLEY_GNUC_VERSION +#endif + +#if defined(HEDLEY_GCC_VERSION_CHECK) +# undef HEDLEY_GCC_VERSION_CHECK +#endif +#if defined(HEDLEY_GCC_VERSION) +# define HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (HEDLEY_GCC_VERSION >= HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else +# define HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(HEDLEY_HAS_ATTRIBUTE) +# undef HEDLEY_HAS_ATTRIBUTE +#endif +#if \ + defined(__has_attribute) && \ + ( \ + (!defined(HEDLEY_IAR_VERSION) || HEDLEY_IAR_VERSION_CHECK(8,5,9)) \ + ) +# define HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) +#else +# define HEDLEY_HAS_ATTRIBUTE(attribute) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_ATTRIBUTE) +# undef HEDLEY_GNUC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) +# define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_HAS_ATTRIBUTE(attribute) +#else +# define HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_ATTRIBUTE) +# undef HEDLEY_GCC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) +# define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_HAS_ATTRIBUTE(attribute) +#else +# define HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_CPP_ATTRIBUTE) +# undef HEDLEY_HAS_CPP_ATTRIBUTE +#endif +#if \ + defined(__has_cpp_attribute) && \ + defined(__cplusplus) && \ + (!defined(HEDLEY_SUNPRO_VERSION) || HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) +# define HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) +#else +# define HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) +#endif + +#if defined(HEDLEY_HAS_CPP_ATTRIBUTE_NS) +# undef HEDLEY_HAS_CPP_ATTRIBUTE_NS +#endif +#if !defined(__cplusplus) || !defined(__has_cpp_attribute) +# define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#elif \ + !defined(HEDLEY_PGI_VERSION) && \ + !defined(HEDLEY_IAR_VERSION) && \ + (!defined(HEDLEY_SUNPRO_VERSION) || HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ + (!defined(HEDLEY_MSVC_VERSION) || HEDLEY_MSVC_VERSION_CHECK(19,20,0)) +# define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) +#else +# define HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) +# undef HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) +# define HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else +# define HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_CPP_ATTRIBUTE) +# undef HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) +# define HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else +# define HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_BUILTIN) +# undef HEDLEY_HAS_BUILTIN +#endif +#if defined(__has_builtin) +# define HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) +#else +# define HEDLEY_HAS_BUILTIN(builtin) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_BUILTIN) +# undef HEDLEY_GNUC_HAS_BUILTIN +#endif +#if defined(__has_builtin) +# define HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else +# define HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_BUILTIN) +# undef HEDLEY_GCC_HAS_BUILTIN +#endif +#if defined(__has_builtin) +# define HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else +# define HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_FEATURE) +# undef HEDLEY_HAS_FEATURE +#endif +#if defined(__has_feature) +# define HEDLEY_HAS_FEATURE(feature) __has_feature(feature) +#else +# define HEDLEY_HAS_FEATURE(feature) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_FEATURE) +# undef HEDLEY_GNUC_HAS_FEATURE +#endif +#if defined(__has_feature) +# define HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else +# define HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_FEATURE) +# undef HEDLEY_GCC_HAS_FEATURE +#endif +#if defined(__has_feature) +# define HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else +# define HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_EXTENSION) +# undef HEDLEY_HAS_EXTENSION +#endif +#if defined(__has_extension) +# define HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) +#else +# define HEDLEY_HAS_EXTENSION(extension) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_EXTENSION) +# undef HEDLEY_GNUC_HAS_EXTENSION +#endif +#if defined(__has_extension) +# define HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else +# define HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_EXTENSION) +# undef HEDLEY_GCC_HAS_EXTENSION +#endif +#if defined(__has_extension) +# define HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else +# define HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_DECLSPEC_ATTRIBUTE) +# undef HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) +# define HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) +#else +# define HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) +# undef HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) +# define HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else +# define HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) +# undef HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) +# define HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else +# define HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_HAS_WARNING) +# undef HEDLEY_HAS_WARNING +#endif +#if defined(__has_warning) +# define HEDLEY_HAS_WARNING(warning) __has_warning(warning) +#else +# define HEDLEY_HAS_WARNING(warning) (0) +#endif + +#if defined(HEDLEY_GNUC_HAS_WARNING) +# undef HEDLEY_GNUC_HAS_WARNING +#endif +#if defined(__has_warning) +# define HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else +# define HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_GCC_HAS_WARNING) +# undef HEDLEY_GCC_HAS_WARNING +#endif +#if defined(__has_warning) +# define HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else +# define HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + defined(__clang__) || \ + HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ + HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ + (HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) +# define HEDLEY_PRAGMA(value) _Pragma(#value) +#elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) +# define HEDLEY_PRAGMA(value) __pragma(value) +#else +# define HEDLEY_PRAGMA(value) +#endif + +#if defined(HEDLEY_DIAGNOSTIC_PUSH) +# undef HEDLEY_DIAGNOSTIC_PUSH +#endif +#if defined(HEDLEY_DIAGNOSTIC_POP) +# undef HEDLEY_DIAGNOSTIC_POP +#endif +#if defined(__clang__) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#elif HEDLEY_GCC_VERSION_CHECK(4,6,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +#elif \ + HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) +# define HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) +#elif HEDLEY_ARM_VERSION_CHECK(5,6,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("pop") +#elif \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") +#elif HEDLEY_PELLES_VERSION_CHECK(2,90,0) +# define HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") +# define HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#else +# define HEDLEY_DIAGNOSTIC_PUSH +# define HEDLEY_DIAGNOSTIC_POP +#endif + +/* HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) +# undef HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#endif +#if defined(__cplusplus) +# if HEDLEY_HAS_WARNING("-Wc++98-compat") +# if HEDLEY_HAS_WARNING("-Wc++17-extensions") +# if HEDLEY_HAS_WARNING("-Wc++1z-extensions") +# define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \ + xpr \ + HEDLEY_DIAGNOSTIC_POP +# else +# define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + xpr \ + HEDLEY_DIAGNOSTIC_POP +# endif +# else +# define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + xpr \ + HEDLEY_DIAGNOSTIC_POP +# endif +# endif +#endif +#if !defined(HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) +# define HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x +#endif + +#if defined(HEDLEY_CONST_CAST) +# undef HEDLEY_CONST_CAST +#endif +#if defined(__cplusplus) +# define HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) +#elif \ + HEDLEY_HAS_WARNING("-Wcast-qual") || \ + HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ + ((T) (expr)); \ + HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define HEDLEY_CONST_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(HEDLEY_REINTERPRET_CAST) +# undef HEDLEY_REINTERPRET_CAST +#endif +#if defined(__cplusplus) +# define HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) +#else +# define HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(HEDLEY_STATIC_CAST) +# undef HEDLEY_STATIC_CAST +#endif +#if defined(__cplusplus) +# define HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) +#else +# define HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(HEDLEY_CPP_CAST) +# undef HEDLEY_CPP_CAST +#endif +#if defined(__cplusplus) +# if HEDLEY_HAS_WARNING("-Wold-style-cast") +# define HEDLEY_CPP_CAST(T, expr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ + ((T) (expr)) \ + HEDLEY_DIAGNOSTIC_POP +# elif HEDLEY_IAR_VERSION_CHECK(8,3,0) +# define HEDLEY_CPP_CAST(T, expr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("diag_suppress=Pe137") \ + HEDLEY_DIAGNOSTIC_POP +# else +# define HEDLEY_CPP_CAST(T, expr) ((T) (expr)) +# endif +#else +# define HEDLEY_CPP_CAST(T, expr) (expr) +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) +# undef HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif +#if HEDLEY_HAS_WARNING("-Wdeprecated-declarations") +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") +#elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786)) +#elif HEDLEY_PGI_VERSION_CHECK(20,7,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445") +#elif HEDLEY_PGI_VERSION_CHECK(17,10,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif HEDLEY_GCC_VERSION_CHECK(4,3,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) +#elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") +#elif HEDLEY_PELLES_VERSION_CHECK(2,90,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) +# undef HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif +#if HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") +#elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161)) +#elif HEDLEY_PGI_VERSION_CHECK(17,10,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") +#elif HEDLEY_GCC_VERSION_CHECK(4,3,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") +#elif HEDLEY_MSVC_VERSION_CHECK(15,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) +#elif \ + HEDLEY_TI_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") +#elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) +# undef HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif +#if HEDLEY_HAS_WARNING("-Wunknown-attributes") +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") +#elif HEDLEY_GCC_VERSION_CHECK(4,6,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif HEDLEY_INTEL_VERSION_CHECK(17,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") +#elif HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292)) +#elif HEDLEY_MSVC_VERSION_CHECK(19,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) +#elif HEDLEY_PGI_VERSION_CHECK(20,7,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098") +#elif HEDLEY_PGI_VERSION_CHECK(17,10,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") +#elif \ + HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") +#elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) +# undef HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif +#if HEDLEY_HAS_WARNING("-Wcast-qual") +# define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") +#elif HEDLEY_GCC_VERSION_CHECK(3,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif + +#if defined(HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION) +# undef HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif +#if HEDLEY_HAS_WARNING("-Wunused-function") +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"") +#elif HEDLEY_GCC_VERSION_CHECK(3,4,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"") +#elif HEDLEY_MSVC_VERSION_CHECK(1,0,0) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505)) +#elif HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142") +#else +# define HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif + +#if defined(HEDLEY_DEPRECATED) +# undef HEDLEY_DEPRECATED +#endif +#if defined(HEDLEY_DEPRECATED_FOR) +# undef HEDLEY_DEPRECATED_FOR +#endif +#if \ + HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) +# define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) +#elif \ + (HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(HEDLEY_IAR_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) +# define HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) +#elif defined(__cplusplus) && (__cplusplus >= 201402L) +# define HEDLEY_DEPRECATED(since) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) +# define HEDLEY_DEPRECATED_FOR(since, replacement) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) +#elif \ + HEDLEY_HAS_ATTRIBUTE(deprecated) || \ + HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) +# define HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_DEPRECATED(since) __declspec(deprecated) +# define HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_DEPRECATED(since) _Pragma("deprecated") +# define HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") +#else +# define HEDLEY_DEPRECATED(since) +# define HEDLEY_DEPRECATED_FOR(since, replacement) +#endif + +#if defined(HEDLEY_UNAVAILABLE) +# undef HEDLEY_UNAVAILABLE +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(warning) || \ + HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) +#else +# define HEDLEY_UNAVAILABLE(available_since) +#endif + +#if defined(HEDLEY_WARN_UNUSED_RESULT) +# undef HEDLEY_WARN_UNUSED_RESULT +#endif +#if defined(HEDLEY_WARN_UNUSED_RESULT_MSG) +# undef HEDLEY_WARN_UNUSED_RESULT_MSG +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) +#elif (HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) +# define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) +#elif HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) +# define HEDLEY_WARN_UNUSED_RESULT HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +#elif defined(_Check_return_) /* SAL */ +# define HEDLEY_WARN_UNUSED_RESULT _Check_return_ +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ +#else +# define HEDLEY_WARN_UNUSED_RESULT +# define HEDLEY_WARN_UNUSED_RESULT_MSG(msg) +#endif + +#if defined(HEDLEY_SENTINEL) +# undef HEDLEY_SENTINEL +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(sentinel) || \ + HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) +#else +# define HEDLEY_SENTINEL(position) +#endif + +#if defined(HEDLEY_NO_RETURN) +# undef HEDLEY_NO_RETURN +#endif +#if HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_NO_RETURN __noreturn +#elif \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# define HEDLEY_NO_RETURN _Noreturn +#elif defined(__cplusplus) && (__cplusplus >= 201103L) +# define HEDLEY_NO_RETURN HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) +#elif \ + HEDLEY_HAS_ATTRIBUTE(noreturn) || \ + HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define HEDLEY_NO_RETURN _Pragma("does_not_return") +#elif \ + HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_NO_RETURN __declspec(noreturn) +#elif HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) +# define HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") +#elif HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) +# define HEDLEY_NO_RETURN __attribute((noreturn)) +#elif HEDLEY_PELLES_VERSION_CHECK(9,0,0) +# define HEDLEY_NO_RETURN __declspec(noreturn) +#else +# define HEDLEY_NO_RETURN +#endif + +#if defined(HEDLEY_NO_ESCAPE) +# undef HEDLEY_NO_ESCAPE +#endif +#if HEDLEY_HAS_ATTRIBUTE(noescape) +# define HEDLEY_NO_ESCAPE __attribute__((__noescape__)) +#else +# define HEDLEY_NO_ESCAPE +#endif + +#if defined(HEDLEY_UNREACHABLE) +# undef HEDLEY_UNREACHABLE +#endif +#if defined(HEDLEY_UNREACHABLE_RETURN) +# undef HEDLEY_UNREACHABLE_RETURN +#endif +#if defined(HEDLEY_ASSUME) +# undef HEDLEY_ASSUME +#endif +#if \ + HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_ASSUME(expr) __assume(expr) +#elif HEDLEY_HAS_BUILTIN(__builtin_assume) +# define HEDLEY_ASSUME(expr) __builtin_assume(expr) +#elif \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) +# if defined(__cplusplus) +# define HEDLEY_ASSUME(expr) std::_nassert(expr) +# else +# define HEDLEY_ASSUME(expr) _nassert(expr) +# endif +#endif +#if \ + (HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(HEDLEY_ARM_VERSION))) || \ + HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,5) || \ + HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_UNREACHABLE() __builtin_unreachable() +#elif defined(HEDLEY_ASSUME) +# define HEDLEY_UNREACHABLE() HEDLEY_ASSUME(0) +#endif +#if !defined(HEDLEY_ASSUME) +# if defined(HEDLEY_UNREACHABLE) +# define HEDLEY_ASSUME(expr) HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (HEDLEY_UNREACHABLE(), 1))) +# else +# define HEDLEY_ASSUME(expr) HEDLEY_STATIC_CAST(void, expr) +# endif +#endif +#if defined(HEDLEY_UNREACHABLE) +# if \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) +# define HEDLEY_UNREACHABLE_RETURN(value) return (HEDLEY_STATIC_CAST(void, HEDLEY_ASSUME(0)), (value)) +# else +# define HEDLEY_UNREACHABLE_RETURN(value) HEDLEY_UNREACHABLE() +# endif +#else +# define HEDLEY_UNREACHABLE_RETURN(value) return (value) +#endif +#if !defined(HEDLEY_UNREACHABLE) +# define HEDLEY_UNREACHABLE() HEDLEY_ASSUME(0) +#endif + +HEDLEY_DIAGNOSTIC_PUSH +#if HEDLEY_HAS_WARNING("-Wpedantic") +# pragma clang diagnostic ignored "-Wpedantic" +#endif +#if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) +# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif +#if HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) +# if defined(__clang__) +# pragma clang diagnostic ignored "-Wvariadic-macros" +# elif defined(HEDLEY_GCC_VERSION) +# pragma GCC diagnostic ignored "-Wvariadic-macros" +# endif +#endif +#if defined(HEDLEY_NON_NULL) +# undef HEDLEY_NON_NULL +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(nonnull) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) +# define HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else +# define HEDLEY_NON_NULL(...) +#endif +HEDLEY_DIAGNOSTIC_POP + +#if defined(HEDLEY_PRINTF_FORMAT) +# undef HEDLEY_PRINTF_FORMAT +#endif +#if defined(__MINGW32__) && HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) +#elif defined(__MINGW32__) && HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) +#elif \ + HEDLEY_HAS_ATTRIBUTE(format) || \ + HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) +#elif HEDLEY_PELLES_VERSION_CHECK(6,0,0) +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) +#else +# define HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) +#endif + +#if defined(HEDLEY_CONSTEXPR) +# undef HEDLEY_CONSTEXPR +#endif +#if defined(__cplusplus) +# if __cplusplus >= 201103L +# define HEDLEY_CONSTEXPR HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) +# endif +#endif +#if !defined(HEDLEY_CONSTEXPR) +# define HEDLEY_CONSTEXPR +#endif + +#if defined(HEDLEY_PREDICT) +# undef HEDLEY_PREDICT +#endif +#if defined(HEDLEY_LIKELY) +# undef HEDLEY_LIKELY +#endif +#if defined(HEDLEY_UNLIKELY) +# undef HEDLEY_UNLIKELY +#endif +#if defined(HEDLEY_UNPREDICTABLE) +# undef HEDLEY_UNPREDICTABLE +#endif +#if HEDLEY_HAS_BUILTIN(__builtin_unpredictable) +# define HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) +#endif +#if \ + (HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(HEDLEY_PGI_VERSION) && !defined(HEDLEY_INTEL_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(9,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) +# define HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) +# define HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) +# define HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) +# define HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) +#elif \ + (HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(HEDLEY_INTEL_CL_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PREDICT(expr, expected, probability) \ + (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (HEDLEY_STATIC_CAST(void, expected), (expr))) +# define HEDLEY_PREDICT_TRUE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ + })) +# define HEDLEY_PREDICT_FALSE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ + })) +# define HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) +# define HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) +#else +# define HEDLEY_PREDICT(expr, expected, probability) (HEDLEY_STATIC_CAST(void, expected), (expr)) +# define HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) +# define HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) +# define HEDLEY_LIKELY(expr) (!!(expr)) +# define HEDLEY_UNLIKELY(expr) (!!(expr)) +#endif +#if !defined(HEDLEY_UNPREDICTABLE) +# define HEDLEY_UNPREDICTABLE(expr) HEDLEY_PREDICT(expr, 1, 0.5) +#endif + +#if defined(HEDLEY_MALLOC) +# undef HEDLEY_MALLOC +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(malloc) || \ + HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_MALLOC __attribute__((__malloc__)) +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define HEDLEY_MALLOC _Pragma("returns_new_memory") +#elif \ + HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_MALLOC __declspec(restrict) +#else +# define HEDLEY_MALLOC +#endif + +#if defined(HEDLEY_PURE) +# undef HEDLEY_PURE +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(pure) || \ + HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PURE __attribute__((__pure__)) +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define HEDLEY_PURE _Pragma("does_not_write_global_data") +#elif defined(__cplusplus) && \ + ( \ + HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ + ) +# define HEDLEY_PURE _Pragma("FUNC_IS_PURE;") +#else +# define HEDLEY_PURE +#endif + +#if defined(HEDLEY_CONST) +# undef HEDLEY_CONST +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(const) || \ + HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_CONST __attribute__((__const__)) +#elif \ + HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define HEDLEY_CONST _Pragma("no_side_effect") +#else +# define HEDLEY_CONST HEDLEY_PURE +#endif + +#if defined(HEDLEY_RESTRICT) +# undef HEDLEY_RESTRICT +#endif +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) +# define HEDLEY_RESTRICT restrict +#elif \ + HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ + HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + defined(__clang__) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_RESTRICT __restrict +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) +# define HEDLEY_RESTRICT _Restrict +#else +# define HEDLEY_RESTRICT +#endif + +#if defined(HEDLEY_INLINE) +# undef HEDLEY_INLINE +#endif +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + (defined(__cplusplus) && (__cplusplus >= 199711L)) +# define HEDLEY_INLINE inline +#elif \ + defined(HEDLEY_GCC_VERSION) || \ + HEDLEY_ARM_VERSION_CHECK(6,2,0) +# define HEDLEY_INLINE __inline__ +#elif \ + HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_INLINE __inline +#else +# define HEDLEY_INLINE +#endif + +#if defined(HEDLEY_ALWAYS_INLINE) +# undef HEDLEY_ALWAYS_INLINE +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(always_inline) || \ + HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) HEDLEY_INLINE +#elif \ + HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_ALWAYS_INLINE __forceinline +#elif defined(__cplusplus) && \ + ( \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ + ) +# define HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") +#else +# define HEDLEY_ALWAYS_INLINE HEDLEY_INLINE +#endif + +#if defined(HEDLEY_NEVER_INLINE) +# undef HEDLEY_NEVER_INLINE +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(noinline) || \ + HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define HEDLEY_NEVER_INLINE __attribute__((__noinline__)) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_NEVER_INLINE __declspec(noinline) +#elif HEDLEY_PGI_VERSION_CHECK(10,2,0) +# define HEDLEY_NEVER_INLINE _Pragma("noinline") +#elif HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) +# define HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_NEVER_INLINE _Pragma("inline=never") +#elif HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) +# define HEDLEY_NEVER_INLINE __attribute((noinline)) +#elif HEDLEY_PELLES_VERSION_CHECK(9,0,0) +# define HEDLEY_NEVER_INLINE __declspec(noinline) +#else +# define HEDLEY_NEVER_INLINE +#endif + +#if defined(HEDLEY_PRIVATE) +# undef HEDLEY_PRIVATE +#endif +#if defined(HEDLEY_PUBLIC) +# undef HEDLEY_PUBLIC +#endif +#if defined(HEDLEY_IMPORT) +# undef HEDLEY_IMPORT +#endif +#if defined(_WIN32) || defined(__CYGWIN__) +# define HEDLEY_PRIVATE +# define HEDLEY_PUBLIC __declspec(dllexport) +# define HEDLEY_IMPORT __declspec(dllimport) +#else +# if \ + HEDLEY_HAS_ATTRIBUTE(visibility) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + ( \ + defined(__TI_EABI__) && \ + ( \ + (HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ + ) \ + ) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) +# define HEDLEY_PUBLIC __attribute__((__visibility__("default"))) +# else +# define HEDLEY_PRIVATE +# define HEDLEY_PUBLIC +# endif +# define HEDLEY_IMPORT extern +#endif + +#if defined(HEDLEY_NO_THROW) +# undef HEDLEY_NO_THROW +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(nothrow) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_NO_THROW __attribute__((__nothrow__)) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) +# define HEDLEY_NO_THROW __declspec(nothrow) +#else +# define HEDLEY_NO_THROW +#endif + +#if defined(HEDLEY_FALL_THROUGH) +# undef HEDLEY_FALL_THROUGH +#endif +#if defined(HEDLEY_INTEL_VERSION) +# define HEDLEY_FALL_THROUGH +#elif \ + HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ + HEDLEY_GCC_VERSION_CHECK(7,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) +#elif HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) +# define HEDLEY_FALL_THROUGH HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) +#elif HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) +# define HEDLEY_FALL_THROUGH HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) +#elif defined(__fallthrough) /* SAL */ +# define HEDLEY_FALL_THROUGH __fallthrough +#else +# define HEDLEY_FALL_THROUGH +#endif + +#if defined(HEDLEY_RETURNS_NON_NULL) +# undef HEDLEY_RETURNS_NON_NULL +#endif +#if \ + HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ + HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) +#elif defined(_Ret_notnull_) /* SAL */ +# define HEDLEY_RETURNS_NON_NULL _Ret_notnull_ +#else +# define HEDLEY_RETURNS_NON_NULL +#endif + +#if defined(HEDLEY_ARRAY_PARAM) +# undef HEDLEY_ARRAY_PARAM +#endif +#if \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ + !defined(__STDC_NO_VLA__) && \ + !defined(__cplusplus) && \ + !defined(HEDLEY_PGI_VERSION) && \ + !defined(HEDLEY_TINYC_VERSION) +# define HEDLEY_ARRAY_PARAM(name) (name) +#else +# define HEDLEY_ARRAY_PARAM(name) +#endif + +#if defined(HEDLEY_IS_CONSTANT) +# undef HEDLEY_IS_CONSTANT +#endif +#if defined(HEDLEY_REQUIRE_CONSTEXPR) +# undef HEDLEY_REQUIRE_CONSTEXPR +#endif +/* HEDLEY_IS_CONSTEXPR_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(HEDLEY_IS_CONSTEXPR_) +# undef HEDLEY_IS_CONSTEXPR_ +#endif +#if \ + HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) +#endif +#if !defined(__cplusplus) +# if \ + HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,24) +# if defined(__INTPTR_TYPE__) +# define HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) +# else +# include +# define HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) +# endif +# elif \ + ( \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ + !defined(HEDLEY_SUNPRO_VERSION) && \ + !defined(HEDLEY_PGI_VERSION) && \ + !defined(HEDLEY_IAR_VERSION)) || \ + (HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(HEDLEY_IAR_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,3,0) +# if defined(__INTPTR_TYPE__) +# define HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) +# else +# include +# define HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) +# endif +# elif \ + defined(HEDLEY_GCC_VERSION) || \ + defined(HEDLEY_INTEL_VERSION) || \ + defined(HEDLEY_TINYC_VERSION) || \ + defined(HEDLEY_TI_ARMCL_VERSION) || \ + HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ + defined(HEDLEY_TI_CL2000_VERSION) || \ + defined(HEDLEY_TI_CL6X_VERSION) || \ + defined(HEDLEY_TI_CL7X_VERSION) || \ + defined(HEDLEY_TI_CLPRU_VERSION) || \ + defined(__clang__) +# define HEDLEY_IS_CONSTEXPR_(expr) ( \ + sizeof(void) != \ + sizeof(*( \ + 1 ? \ + ((void*) ((expr) * 0L) ) : \ + ((struct { char v[sizeof(void) * 2]; } *) 1) \ + ) \ + ) \ + ) +# endif +#endif +#if defined(HEDLEY_IS_CONSTEXPR_) +# if !defined(HEDLEY_IS_CONSTANT) +# define HEDLEY_IS_CONSTANT(expr) HEDLEY_IS_CONSTEXPR_(expr) +# endif +# define HEDLEY_REQUIRE_CONSTEXPR(expr) (HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) +#else +# if !defined(HEDLEY_IS_CONSTANT) +# define HEDLEY_IS_CONSTANT(expr) (0) +# endif +# define HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) +#endif + +#if defined(HEDLEY_BEGIN_C_DECLS) +# undef HEDLEY_BEGIN_C_DECLS +#endif +#if defined(HEDLEY_END_C_DECLS) +# undef HEDLEY_END_C_DECLS +#endif +#if defined(HEDLEY_C_DECL) +# undef HEDLEY_C_DECL +#endif +#if defined(__cplusplus) +# define HEDLEY_BEGIN_C_DECLS extern "C" { +# define HEDLEY_END_C_DECLS } +# define HEDLEY_C_DECL extern "C" +#else +# define HEDLEY_BEGIN_C_DECLS +# define HEDLEY_END_C_DECLS +# define HEDLEY_C_DECL +#endif + +#if defined(HEDLEY_STATIC_ASSERT) +# undef HEDLEY_STATIC_ASSERT +#endif +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (HEDLEY_HAS_FEATURE(c_static_assert) && !defined(HEDLEY_INTEL_CL_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) +# define HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_STATIC_ASSERT(expr, message) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#else +# define HEDLEY_STATIC_ASSERT(expr, message) +#endif + +#if defined(HEDLEY_NULL) +# undef HEDLEY_NULL +#endif +#if defined(__cplusplus) +# if __cplusplus >= 201103L +# define HEDLEY_NULL HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) +# elif defined(NULL) +# define HEDLEY_NULL NULL +# else +# define HEDLEY_NULL HEDLEY_STATIC_CAST(void*, 0) +# endif +#elif defined(NULL) +# define HEDLEY_NULL NULL +#else +# define HEDLEY_NULL ((void*) 0) +#endif + +#if defined(HEDLEY_MESSAGE) +# undef HEDLEY_MESSAGE +#endif +#if HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define HEDLEY_MESSAGE(msg) \ + HEDLEY_DIAGNOSTIC_PUSH \ + HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + HEDLEY_PRAGMA(message msg) \ + HEDLEY_DIAGNOSTIC_POP +#elif \ + HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message msg) +#elif HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(_CRI message msg) +#elif HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message(msg)) +#elif HEDLEY_PELLES_VERSION_CHECK(2,0,0) +# define HEDLEY_MESSAGE(msg) HEDLEY_PRAGMA(message(msg)) +#else +# define HEDLEY_MESSAGE(msg) +#endif + +#if defined(HEDLEY_WARNING) +# undef HEDLEY_WARNING +#endif +#if HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define HEDLEY_WARNING(msg) \ + HEDLEY_DIAGNOSTIC_PUSH \ + HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + HEDLEY_PRAGMA(clang warning msg) \ + HEDLEY_DIAGNOSTIC_POP +#elif \ + HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ + HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define HEDLEY_WARNING(msg) HEDLEY_PRAGMA(GCC warning msg) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_WARNING(msg) HEDLEY_PRAGMA(message(msg)) +#else +# define HEDLEY_WARNING(msg) HEDLEY_MESSAGE(msg) +#endif + +#if defined(HEDLEY_REQUIRE) +# undef HEDLEY_REQUIRE +#endif +#if defined(HEDLEY_REQUIRE_MSG) +# undef HEDLEY_REQUIRE_MSG +#endif +#if HEDLEY_HAS_ATTRIBUTE(diagnose_if) +# if HEDLEY_HAS_WARNING("-Wgcc-compat") +# define HEDLEY_REQUIRE(expr) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), #expr, "error"))) \ + HEDLEY_DIAGNOSTIC_POP +# define HEDLEY_REQUIRE_MSG(expr,msg) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), msg, "error"))) \ + HEDLEY_DIAGNOSTIC_POP +# else +# define HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) +# define HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) +# endif +#else +# define HEDLEY_REQUIRE(expr) +# define HEDLEY_REQUIRE_MSG(expr,msg) +#endif + +#if defined(HEDLEY_FLAGS) +# undef HEDLEY_FLAGS +#endif +#if HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion")) +# define HEDLEY_FLAGS __attribute__((__flag_enum__)) +#else +# define HEDLEY_FLAGS +#endif + +#if defined(HEDLEY_FLAGS_CAST) +# undef HEDLEY_FLAGS_CAST +#endif +#if HEDLEY_INTEL_VERSION_CHECK(19,0,0) +# define HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("warning(disable:188)") \ + ((T) (expr)); \ + HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define HEDLEY_FLAGS_CAST(T, expr) HEDLEY_STATIC_CAST(T, expr) +#endif + +#if defined(HEDLEY_EMPTY_BASES) +# undef HEDLEY_EMPTY_BASES +#endif +#if \ + (HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \ + HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define HEDLEY_EMPTY_BASES __declspec(empty_bases) +#else +# define HEDLEY_EMPTY_BASES +#endif + +/* Remaining macros are deprecated. */ + +#if defined(HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) +# undef HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#endif +#if defined(__clang__) +# define HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) +#else +# define HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(HEDLEY_CLANG_HAS_ATTRIBUTE) +# undef HEDLEY_CLANG_HAS_ATTRIBUTE +#endif +#define HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) HEDLEY_HAS_ATTRIBUTE(attribute) + +#if defined(HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) +# undef HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#endif +#define HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) HEDLEY_HAS_CPP_ATTRIBUTE(attribute) + +#if defined(HEDLEY_CLANG_HAS_BUILTIN) +# undef HEDLEY_CLANG_HAS_BUILTIN +#endif +#define HEDLEY_CLANG_HAS_BUILTIN(builtin) HEDLEY_HAS_BUILTIN(builtin) + +#if defined(HEDLEY_CLANG_HAS_FEATURE) +# undef HEDLEY_CLANG_HAS_FEATURE +#endif +#define HEDLEY_CLANG_HAS_FEATURE(feature) HEDLEY_HAS_FEATURE(feature) + +#if defined(HEDLEY_CLANG_HAS_EXTENSION) +# undef HEDLEY_CLANG_HAS_EXTENSION +#endif +#define HEDLEY_CLANG_HAS_EXTENSION(extension) HEDLEY_HAS_EXTENSION(extension) + +#if defined(HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) +# undef HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#endif +#define HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) + +#if defined(HEDLEY_CLANG_HAS_WARNING) +# undef HEDLEY_CLANG_HAS_WARNING +#endif +#define HEDLEY_CLANG_HAS_WARNING(warning) HEDLEY_HAS_WARNING(warning) + +#endif /* !defined(HEDLEY_VERSION) || (HEDLEY_VERSION < X) */ +/* :: End simde/hedley.h :: */ + +#define SIMDE_VERSION_MAJOR 0 +#define SIMDE_VERSION_MINOR 8 +#define SIMDE_VERSION_MICRO 2 +#define SIMDE_VERSION HEDLEY_VERSION_ENCODE(SIMDE_VERSION_MAJOR, SIMDE_VERSION_MINOR, SIMDE_VERSION_MICRO) +// Also update meson.build in the root directory of the repository + +#include +#include + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/simde-detect-clang.h :: */ +/* Detect Clang Version + * Created by Evan Nemerson + * + * To the extent possible under law, the author(s) have dedicated all + * copyright and related and neighboring rights to this software to + * the public domain worldwide. This software is distributed without + * any warranty. + * + * For details, see . + * SPDX-License-Identifier: CC0-1.0 + */ + +/* This file was originally part of SIMDe + * (). You're free to do with it as + * you please, but I do have a few small requests: + * + * * If you make improvements, please submit them back to SIMDe + * (at ) so others can + * benefit from them. + * * Please keep a link to SIMDe intact so people know where to submit + * improvements. + * * If you expose it publicly, please change the SIMDE_ prefix to + * something specific to your project. + * + * The version numbers clang exposes (in the ___clang_major__, + * __clang_minor__, and __clang_patchlevel__ macros) are unreliable. + * Vendors such as Apple will define these values to their version + * numbers; for example, "Apple Clang 4.0" is really clang 3.1, but + * __clang_major__ and __clang_minor__ are defined to 4 and 0 + * respectively, instead of 3 and 1. + * + * The solution is *usually* to use clang's feature detection macros + * () + * to determine if the feature you're interested in is available. This + * generally works well, and it should probably be the first thing you + * try. Unfortunately, it's not possible to check for everything. In + * particular, compiler bugs. + * + * This file just uses the feature checking macros to detect features + * added in specific versions of clang to identify which version of + * clang the compiler is based on. + * + * Right now it only goes back to 3.6, but I'm happy to accept patches + * to go back further. And, of course, newer versions are welcome if + * they're not already present, and if you find a way to detect a point + * release that would be great, too! + */ + +#if !defined(SIMDE_DETECT_CLANG_H) +#define SIMDE_DETECT_CLANG_H 1 + +/* Attempt to detect the upstream clang version number. I usually only + * worry about major version numbers (at least for 4.0+), but if you + * need more resolution I'm happy to accept patches that are able to + * detect minor versions as well. That said, you'll probably have a + * hard time with detection since AFAIK most minor releases don't add + * anything we can detect. Updated based on + * https://github.com/google/highway/blob/438c705a295176b96a50336527bb3e7ea365ffac/hwy/detect_compiler_arch.h#L73 + * - would welcome patches/updates there as well. + */ + +#if defined(__clang__) && !defined(SIMDE_DETECT_CLANG_VERSION) +# if __has_warning("-Wmissing-designated-field-initializers") +# define SIMDE_DETECT_CLANG_VERSION 190000 +# elif __has_warning("-Woverriding-option") +# define SIMDE_DETECT_CLANG_VERSION 180000 +# elif __has_attribute(unsafe_buffer_usage) // no new warnings in 17.0 +# define SIMDE_DETECT_CLANG_VERSION 170000 +# elif __has_attribute(nouwtable) // no new warnings in 16.0 +# define SIMDE_DETECT_CLANG_VERSION 160000 +# elif __has_warning("-Warray-parameter") +# define SIMDE_DETECT_CLANG_VERSION 150000 +# elif __has_warning("-Wbitwise-instead-of-logical") +# define SIMDE_DETECT_CLANG_VERSION 140000 +# elif __has_warning("-Waix-compat") +# define SIMDE_DETECT_CLANG_VERSION 130000 +# elif __has_warning("-Wformat-insufficient-args") +# define SIMDE_DETECT_CLANG_VERSION 120000 +# elif __has_warning("-Wimplicit-const-int-float-conversion") +# define SIMDE_DETECT_CLANG_VERSION 110000 +# elif __has_warning("-Wmisleading-indentation") +# define SIMDE_DETECT_CLANG_VERSION 100000 +# elif defined(__FILE_NAME__) +# define SIMDE_DETECT_CLANG_VERSION 90000 +# elif __has_warning("-Wextra-semi-stmt") || __has_builtin(__builtin_rotateleft32) +# define SIMDE_DETECT_CLANG_VERSION 80000 +// For reasons unknown, Xcode 10.3 (Apple LLVM version 10.0.1) is apparently +// based on Clang 7, but does not support the warning we test. +// See https://en.wikipedia.org/wiki/Xcode#Toolchain_versions and +// https://trac.macports.org/wiki/XcodeVersionInfo. +# elif __has_warning("-Wc++98-compat-extra-semi") || \ + (defined(__apple_build_version__) && __apple_build_version__ >= 10010000) +# define SIMDE_DETECT_CLANG_VERSION 70000 +# elif __has_warning("-Wpragma-pack") +# define SIMDE_DETECT_CLANG_VERSION 60000 +# elif __has_warning("-Wbitfield-enum-conversion") +# define SIMDE_DETECT_CLANG_VERSION 50000 +# elif __has_attribute(diagnose_if) +# define SIMDE_DETECT_CLANG_VERSION 40000 +# elif __has_warning("-Wcomma") +# define SIMDE_DETECT_CLANG_VERSION 39000 +# elif __has_warning("-Wdouble-promotion") +# define SIMDE_DETECT_CLANG_VERSION 38000 +# elif __has_warning("-Wshift-negative-value") +# define SIMDE_DETECT_CLANG_VERSION 37000 +# elif __has_warning("-Wambiguous-ellipsis") +# define SIMDE_DETECT_CLANG_VERSION 36000 +# else +# define SIMDE_DETECT_CLANG_VERSION 1 +# endif +#endif /* defined(__clang__) && !defined(SIMDE_DETECT_CLANG_VERSION) */ + +/* The SIMDE_DETECT_CLANG_VERSION_CHECK macro is pretty + * straightforward; it returns true if the compiler is a derivative + * of clang >= the specified version. + * + * Since this file is often (primarily?) useful for working around bugs + * it is also helpful to have a macro which returns true if only if the + * compiler is a version of clang *older* than the specified version to + * make it a bit easier to ifdef regions to add code for older versions, + * such as pragmas to disable a specific warning. */ + +#if defined(SIMDE_DETECT_CLANG_VERSION) +# define SIMDE_DETECT_CLANG_VERSION_CHECK(major, minor, revision) (SIMDE_DETECT_CLANG_VERSION >= ((major * 10000) + (minor * 1000) + (revision))) +# define SIMDE_DETECT_CLANG_VERSION_NOT(major, minor, revision) (SIMDE_DETECT_CLANG_VERSION < ((major * 10000) + (minor * 1000) + (revision))) +#else +# define SIMDE_DETECT_CLANG_VERSION_CHECK(major, minor, revision) (0) +# define SIMDE_DETECT_CLANG_VERSION_NOT(major, minor, revision) (0) +#endif + +#endif /* !defined(SIMDE_DETECT_CLANG_H) */ +/* :: End simde/simde-detect-clang.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/simde-arch.h :: */ +/* Architecture detection + * Created by Evan Nemerson + * + * To the extent possible under law, the authors have waived all + * copyright and related or neighboring rights to this code. For + * details, see the Creative Commons Zero 1.0 Universal license at + * + * + * SPDX-License-Identifier: CC0-1.0 + * + * Different compilers define different preprocessor macros for the + * same architecture. This is an attempt to provide a single + * interface which is usable on any compiler. + * + * In general, a macro named SIMDE_ARCH_* is defined for each + * architecture the CPU supports. When there are multiple possible + * versions, we try to define the macro to the target version. For + * example, if you want to check for i586+, you could do something + * like: + * + * #if defined(SIMDE_ARCH_X86) && (SIMDE_ARCH_X86 >= 5) + * ... + * #endif + * + * You could also just check that SIMDE_ARCH_X86 >= 5 without checking + * if it's defined first, but some compilers may emit a warning about + * an undefined macro being used (e.g., GCC with -Wundef). + * + * This was originally created for SIMDe + * (hence the prefix), but this + * header has no dependencies and may be used anywhere. It is + * originally based on information from + * , though it + * has been enhanced with additional information. + * + * If you improve this file, or find a bug, please file the issue at + * . If you copy this into + * your project, even if you change the prefix, please keep the links + * to SIMDe intact so others know where to report issues, submit + * enhancements, and find the latest version. */ + +#if !defined(SIMDE_ARCH_H) +#define SIMDE_ARCH_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ + +/* Alpha + */ +#if defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA) +# if defined(__alpha_ev6__) +# define SIMDE_ARCH_ALPHA 6 +# elif defined(__alpha_ev5__) +# define SIMDE_ARCH_ALPHA 5 +# elif defined(__alpha_ev4__) +# define SIMDE_ARCH_ALPHA 4 +# else +# define SIMDE_ARCH_ALPHA 1 +# endif +#endif +#if defined(SIMDE_ARCH_ALPHA) +# define SIMDE_ARCH_ALPHA_CHECK(version) ((version) <= SIMDE_ARCH_ALPHA) +#else +# define SIMDE_ARCH_ALPHA_CHECK(version) (0) +#endif + +/* Atmel AVR + */ +#if defined(__AVR_ARCH__) +# define SIMDE_ARCH_AVR __AVR_ARCH__ +#endif + +/* AMD64 / x86_64 + */ +#if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64) +# if !defined(_M_ARM64EC) +# define SIMDE_ARCH_AMD64 1000 +# endif +#endif + +/* ARM + */ +#if defined(__ARM_ARCH) +# if __ARM_ARCH > 100 +# define SIMDE_ARCH_ARM (__ARM_ARCH) +# else +# define SIMDE_ARCH_ARM (__ARM_ARCH * 100) +# endif +#elif defined(_M_ARM) +# if _M_ARM > 100 +# define SIMDE_ARCH_ARM (_M_ARM) +# else +# define SIMDE_ARCH_ARM (_M_ARM * 100) +# endif +#elif defined(_M_ARM64) || defined(_M_ARM64EC) +# define SIMDE_ARCH_ARM 800 +#elif defined(__arm__) || defined(__thumb__) || defined(__TARGET_ARCH_ARM) || defined(_ARM) || defined(_M_ARM) || defined(_M_ARM) +# define SIMDE_ARCH_ARM 1 +#endif +#if defined(SIMDE_ARCH_ARM) +# define SIMDE_ARCH_ARM_CHECK(major, minor) (((major * 100) + (minor)) <= SIMDE_ARCH_ARM) +#else +# define SIMDE_ARCH_ARM_CHECK(major, minor) (0) +#endif + +/* AArch64 + */ +#if defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) +# define SIMDE_ARCH_AARCH64 1000 +#endif +#if defined(SIMDE_ARCH_AARCH64) +# define SIMDE_ARCH_AARCH64_CHECK(version) ((version) <= SIMDE_ARCH_AARCH64) +#else +# define SIMDE_ARCH_AARCH64_CHECK(version) (0) +#endif + +/* ARM SIMD ISA extensions */ +#if defined(__ARM_NEON) || defined(SIMDE_ARCH_AARCH64) +# if defined(SIMDE_ARCH_AARCH64) +# define SIMDE_ARCH_ARM_NEON SIMDE_ARCH_AARCH64 +# elif defined(SIMDE_ARCH_ARM) +# define SIMDE_ARCH_ARM_NEON SIMDE_ARCH_ARM +# endif +#endif +#if defined(__ARM_FEATURE_AES) && __ARM_FEATURE_AES +# define SIMDE_ARCH_ARM_AES +#endif +#if defined(__ARM_FEATURE_COMPLEX) && __ARM_FEATURE_COMPLEX +# define SIMDE_ARCH_ARM_COMPLEX +#endif +#if defined(__ARM_FEATURE_CRYPTO) && __ARM_FEATURE_CRYPTO +# define SIMDE_ARCH_ARM_CRYPTO +#endif +#if defined(__ARM_FEATURE_DOTPROD) && __ARM_FEATURE_DOTPROD +# define SIMDE_ARCH_ARM_DOTPROD +#endif +#if defined(__ARM_FEATURE_FMA) && __ARM_FEATURE_FMA +# define SIMDE_ARCH_ARM_FMA +#endif +#if defined(__ARM_FEATURE_FP16_FML) && __ARM_FEATURE_FP16_FML +# define SIMDE_ARCH_ARM_FP16_FML +#endif +#if defined(__ARM_FEATURE_FRINT) && __ARM_FEATURE_FRINT +# define SIMDE_ARCH_ARM_FRINT +#endif +#if defined(__ARM_FEATURE_MATMUL_INT8) && __ARM_FEATURE_MATMUL_INT8 +# define SIMDE_ARCH_ARM_MATMUL_INT8 +#endif +#if defined(__ARM_FEATURE_SHA2) && __ARM_FEATURE_SHA2 && !defined(__APPLE_CC__) +# define SIMDE_ARCH_ARM_SHA2 +#endif +#if defined(__ARM_FEATURE_SHA3) && __ARM_FEATURE_SHA3 +# define SIMDE_ARCH_ARM_SHA3 +#endif +#if defined(__ARM_FEATURE_SHA512) && __ARM_FEATURE_SHA512 +# define SIMDE_ARCH_ARM_SHA512 +#endif +#if defined(__ARM_FEATURE_SM3) && __ARM_FEATURE_SM3 +# define SIMDE_ARCH_ARM_SM3 +#endif +#if defined(__ARM_FEATURE_SM4) && __ARM_FEATURE_SM4 +# define SIMDE_ARCH_ARM_SM4 +#endif +#if defined(__ARM_FEATURE_SVE) && __ARM_FEATURE_SVE +# define SIMDE_ARCH_ARM_SVE +#endif +#if defined(__ARM_FEATURE_QRDMX) && __ARM_FEATURE_QRDMX +# define SIMDE_ARCH_ARM_QRDMX +#endif + +/* Blackfin + */ +#if defined(__bfin) || defined(__BFIN__) || defined(__bfin__) +# define SIMDE_ARCH_BLACKFIN 1 +#endif + +/* CRIS + */ +#if defined(__CRIS_arch_version) +# define SIMDE_ARCH_CRIS __CRIS_arch_version +#elif defined(__cris__) || defined(__cris) || defined(__CRIS) || defined(__CRIS__) +# define SIMDE_ARCH_CRIS 1 +#endif + +/* Convex + */ +#if defined(__convex_c38__) +# define SIMDE_ARCH_CONVEX 38 +#elif defined(__convex_c34__) +# define SIMDE_ARCH_CONVEX 34 +#elif defined(__convex_c32__) +# define SIMDE_ARCH_CONVEX 32 +#elif defined(__convex_c2__) +# define SIMDE_ARCH_CONVEX 2 +#elif defined(__convex__) +# define SIMDE_ARCH_CONVEX 1 +#endif +#if defined(SIMDE_ARCH_CONVEX) +# define SIMDE_ARCH_CONVEX_CHECK(version) ((version) <= SIMDE_ARCH_CONVEX) +#else +# define SIMDE_ARCH_CONVEX_CHECK(version) (0) +#endif + +/* Adapteva Epiphany + */ +#if defined(__epiphany__) +# define SIMDE_ARCH_EPIPHANY 1 +#endif + +/* Fujitsu FR-V + */ +#if defined(__frv__) +# define SIMDE_ARCH_FRV 1 +#endif + +/* H8/300 + */ +#if defined(__H8300__) +# define SIMDE_ARCH_H8300 +#endif + +/* Elbrus (8S, 8SV and successors) + */ +#if defined(__e2k__) +# define SIMDE_ARCH_E2K +#endif + +/* HP/PA / PA-RISC + */ +#if defined(__PA8000__) || defined(__HPPA20__) || defined(__RISC2_0__) || defined(_PA_RISC2_0) +# define SIMDE_ARCH_HPPA 20 +#elif defined(__PA7100__) || defined(__HPPA11__) || defined(_PA_RISC1_1) +# define SIMDE_ARCH_HPPA 11 +#elif defined(_PA_RISC1_0) +# define SIMDE_ARCH_HPPA 10 +#elif defined(__hppa__) || defined(__HPPA__) || defined(__hppa) +# define SIMDE_ARCH_HPPA 1 +#endif +#if defined(SIMDE_ARCH_HPPA) +# define SIMDE_ARCH_HPPA_CHECK(version) ((version) <= SIMDE_ARCH_HPPA) +#else +# define SIMDE_ARCH_HPPA_CHECK(version) (0) +#endif + +/* x86 + */ +#if defined(_M_IX86) +# define SIMDE_ARCH_X86 (_M_IX86 / 100) +#elif defined(__I86__) +# define SIMDE_ARCH_X86 __I86__ +#elif defined(i686) || defined(__i686) || defined(__i686__) +# define SIMDE_ARCH_X86 6 +#elif defined(i586) || defined(__i586) || defined(__i586__) +# define SIMDE_ARCH_X86 5 +#elif defined(i486) || defined(__i486) || defined(__i486__) +# define SIMDE_ARCH_X86 4 +#elif defined(i386) || defined(__i386) || defined(__i386__) +# define SIMDE_ARCH_X86 3 +#elif defined(_X86_) || defined(__X86__) || defined(__THW_INTEL__) +# define SIMDE_ARCH_X86 3 +#endif +#if defined(SIMDE_ARCH_X86) +# define SIMDE_ARCH_X86_CHECK(version) ((version) <= SIMDE_ARCH_X86) +#else +# define SIMDE_ARCH_X86_CHECK(version) (0) +#endif + +/* SIMD ISA extensions for x86/x86_64 and Elbrus */ +#if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) || defined(SIMDE_ARCH_E2K) +# if defined(_M_IX86_FP) +# define SIMDE_ARCH_X86_MMX +# if (_M_IX86_FP >= 1) +# define SIMDE_ARCH_X86_SSE 1 +# endif +# if (_M_IX86_FP >= 2) +# define SIMDE_ARCH_X86_SSE2 1 +# endif +# elif defined(_M_X64) +# define SIMDE_ARCH_X86_SSE 1 +# define SIMDE_ARCH_X86_SSE2 1 +# else +# if defined(__MMX__) +# define SIMDE_ARCH_X86_MMX 1 +# endif +# if defined(__SSE__) +# define SIMDE_ARCH_X86_SSE 1 +# endif +# if defined(__SSE2__) +# define SIMDE_ARCH_X86_SSE2 1 +# endif +# endif +# if defined(__SSE3__) +# define SIMDE_ARCH_X86_SSE3 1 +# endif +# if defined(__SSSE3__) +# define SIMDE_ARCH_X86_SSSE3 1 +# endif +# if defined(__SSE4_1__) +# define SIMDE_ARCH_X86_SSE4_1 1 +# endif +# if defined(__SSE4_2__) +# define SIMDE_ARCH_X86_SSE4_2 1 +# endif +# if defined(__XOP__) +# define SIMDE_ARCH_X86_XOP 1 +# endif +# if defined(__AVX__) +# define SIMDE_ARCH_X86_AVX 1 +# if !defined(SIMDE_ARCH_X86_SSE3) +# define SIMDE_ARCH_X86_SSE3 1 +# endif +# if !defined(SIMDE_ARCH_X86_SSE4_1) +# define SIMDE_ARCH_X86_SSE4_1 1 +# endif +# if !defined(SIMDE_ARCH_X86_SSE4_2) +# define SIMDE_ARCH_X86_SSE4_2 1 +# endif +# endif +# if defined(__AVX2__) +# define SIMDE_ARCH_X86_AVX2 1 +# if defined(_MSC_VER) +# define SIMDE_ARCH_X86_FMA 1 +# endif +# endif +# if defined(__FMA__) +# define SIMDE_ARCH_X86_FMA 1 +# if !defined(SIMDE_ARCH_X86_AVX) +# define SIMDE_ARCH_X86_AVX 1 +# endif +# endif +# if defined(__AVX512VP2INTERSECT__) +# define SIMDE_ARCH_X86_AVX512VP2INTERSECT 1 +# endif +# if defined(__AVX512BITALG__) +# define SIMDE_ARCH_X86_AVX512BITALG 1 +# endif +# if defined(__AVX512VPOPCNTDQ__) +# define SIMDE_ARCH_X86_AVX512VPOPCNTDQ 1 +# endif +# if defined(__AVX512VBMI__) +# define SIMDE_ARCH_X86_AVX512VBMI 1 +# endif +# if defined(__AVX512VBMI2__) +# define SIMDE_ARCH_X86_AVX512VBMI2 1 +# endif +# if defined(__AVX512VNNI__) +# define SIMDE_ARCH_X86_AVX512VNNI 1 +# endif +# if defined(__AVX5124VNNIW__) +# define SIMDE_ARCH_X86_AVX5124VNNIW 1 +# endif +# if defined(__AVX512BW__) +# define SIMDE_ARCH_X86_AVX512BW 1 +# endif +# if defined(__AVX512BF16__) +# define SIMDE_ARCH_X86_AVX512BF16 1 +# endif +# if defined(__AVX512CD__) +# define SIMDE_ARCH_X86_AVX512CD 1 +# endif +# if defined(__AVX512DQ__) +# define SIMDE_ARCH_X86_AVX512DQ 1 +# endif +# if defined(__AVX512F__) +# define SIMDE_ARCH_X86_AVX512F 1 +# endif +# if defined(__AVX512VL__) +# define SIMDE_ARCH_X86_AVX512VL 1 +# endif +# if defined(__AVX512FP16__) +# define SIMDE_ARCH_X86_AVX512FP16 1 +# endif +# if defined(__GFNI__) +# define SIMDE_ARCH_X86_GFNI 1 +# endif +# if defined(__PCLMUL__) +# define SIMDE_ARCH_X86_PCLMUL 1 +# endif +# if defined(__VPCLMULQDQ__) +# define SIMDE_ARCH_X86_VPCLMULQDQ 1 +# endif +# if defined(__F16C__) || (defined(HEDLEY_MSVC_VERSION) && HEDLEY_MSVC_VERSION_CHECK(19,30,0) && defined(SIMDE_ARCH_X86_AVX2) ) +# define SIMDE_ARCH_X86_F16C 1 +# endif +# if defined(__AES__) +# define SIMDE_ARCH_X86_AES 1 +# endif +#endif + +/* Itanium + */ +#if defined(__ia64__) || defined(_IA64) || defined(__IA64__) || defined(__ia64) || defined(_M_IA64) || defined(__itanium__) +# define SIMDE_ARCH_IA64 1 +#endif + +/* Renesas M32R + */ +#if defined(__m32r__) || defined(__M32R__) +# define SIMDE_ARCH_M32R +#endif + +/* Motorola 68000 + */ +#if defined(__mc68060__) || defined(__MC68060__) +# define SIMDE_ARCH_M68K 68060 +#elif defined(__mc68040__) || defined(__MC68040__) +# define SIMDE_ARCH_M68K 68040 +#elif defined(__mc68030__) || defined(__MC68030__) +# define SIMDE_ARCH_M68K 68030 +#elif defined(__mc68020__) || defined(__MC68020__) +# define SIMDE_ARCH_M68K 68020 +#elif defined(__mc68010__) || defined(__MC68010__) +# define SIMDE_ARCH_M68K 68010 +#elif defined(__mc68000__) || defined(__MC68000__) +# define SIMDE_ARCH_M68K 68000 +#endif +#if defined(SIMDE_ARCH_M68K) +# define SIMDE_ARCH_M68K_CHECK(version) ((version) <= SIMDE_ARCH_M68K) +#else +# define SIMDE_ARCH_M68K_CHECK(version) (0) +#endif + +/* Xilinx MicroBlaze + */ +#if defined(__MICROBLAZE__) || defined(__microblaze__) +# define SIMDE_ARCH_MICROBLAZE +#endif + +/* MIPS + */ +#if defined(_MIPS_ISA_MIPS64R2) +# define SIMDE_ARCH_MIPS 642 +#elif defined(_MIPS_ISA_MIPS64) +# define SIMDE_ARCH_MIPS 640 +#elif defined(_MIPS_ISA_MIPS32R2) +# define SIMDE_ARCH_MIPS 322 +#elif defined(_MIPS_ISA_MIPS32) +# define SIMDE_ARCH_MIPS 320 +#elif defined(_MIPS_ISA_MIPS4) +# define SIMDE_ARCH_MIPS 4 +#elif defined(_MIPS_ISA_MIPS3) +# define SIMDE_ARCH_MIPS 3 +#elif defined(_MIPS_ISA_MIPS2) +# define SIMDE_ARCH_MIPS 2 +#elif defined(_MIPS_ISA_MIPS1) +# define SIMDE_ARCH_MIPS 1 +#elif defined(_MIPS_ISA_MIPS) || defined(__mips) || defined(__MIPS__) +# define SIMDE_ARCH_MIPS 1 +#endif +#if defined(SIMDE_ARCH_MIPS) +# define SIMDE_ARCH_MIPS_CHECK(version) ((version) <= SIMDE_ARCH_MIPS) +#else +# define SIMDE_ARCH_MIPS_CHECK(version) (0) +#endif + +#if defined(__mips_loongson_mmi) +# define SIMDE_ARCH_MIPS_LOONGSON_MMI 1 +#endif + +#if defined(__mips_msa) +# define SIMDE_ARCH_MIPS_MSA 1 +#endif + +/* Matsushita MN10300 + */ +#if defined(__MN10300__) || defined(__mn10300__) +# define SIMDE_ARCH_MN10300 1 +#endif + +/* POWER + */ +#if defined(_M_PPC) +# define SIMDE_ARCH_POWER _M_PPC +#elif defined(_ARCH_PWR9) +# define SIMDE_ARCH_POWER 900 +#elif defined(_ARCH_PWR8) +# define SIMDE_ARCH_POWER 800 +#elif defined(_ARCH_PWR7) +# define SIMDE_ARCH_POWER 700 +#elif defined(_ARCH_PWR6) +# define SIMDE_ARCH_POWER 600 +#elif defined(_ARCH_PWR5) +# define SIMDE_ARCH_POWER 500 +#elif defined(_ARCH_PWR4) +# define SIMDE_ARCH_POWER 400 +#elif defined(_ARCH_440) || defined(__ppc440__) +# define SIMDE_ARCH_POWER 440 +#elif defined(_ARCH_450) || defined(__ppc450__) +# define SIMDE_ARCH_POWER 450 +#elif defined(_ARCH_601) || defined(__ppc601__) +# define SIMDE_ARCH_POWER 601 +#elif defined(_ARCH_603) || defined(__ppc603__) +# define SIMDE_ARCH_POWER 603 +#elif defined(_ARCH_604) || defined(__ppc604__) +# define SIMDE_ARCH_POWER 604 +#elif defined(_ARCH_605) || defined(__ppc605__) +# define SIMDE_ARCH_POWER 605 +#elif defined(_ARCH_620) || defined(__ppc620__) +# define SIMDE_ARCH_POWER 620 +#elif defined(__powerpc) || defined(__powerpc__) || defined(__POWERPC__) || defined(__ppc__) || defined(__PPC__) || defined(_ARCH_PPC) || defined(__ppc) +# define SIMDE_ARCH_POWER 1 +#endif +#if defined(SIMDE_ARCH_POWER) + #define SIMDE_ARCH_POWER_CHECK(version) ((version) <= SIMDE_ARCH_POWER) +#else + #define SIMDE_ARCH_POWER_CHECK(version) (0) +#endif + +#if defined(__ALTIVEC__) +# define SIMDE_ARCH_POWER_ALTIVEC SIMDE_ARCH_POWER + #define SIMDE_ARCH_POWER_ALTIVEC_CHECK(version) ((version) <= SIMDE_ARCH_POWER) +#else + #define SIMDE_ARCH_POWER_ALTIVEC_CHECK(version) (0) +#endif + +/* RISC-V + */ +#if defined(__riscv) || defined(__riscv__) +# if __riscv_xlen == 64 +# define SIMDE_ARCH_RISCV64 +# elif __riscv_xlen == 32 +# define SIMDE_ARCH_RISCV32 +# endif +#endif + +/* RISC-V SIMD ISA extensions */ +#if defined(__riscv_zve32x) +# define SIMDE_ARCH_RISCV_ZVE32X 1 +#endif +#if defined(__riscv_zve32f) +# define SIMDE_ARCH_RISCV_ZVE32F 1 +#endif +#if defined(__riscv_zve64x) +# define SIMDE_ARCH_RISCV_ZVE64X 1 +#endif +#if defined(__riscv_zve64f) +# define SIMDE_ARCH_RISCV_ZVE64F 1 +#endif +#if defined(__riscv_zve64d) +# define SIMDE_ARCH_RISCV_ZVE64D 1 +#endif +#if defined(__riscv_v) +# define SIMDE_ARCH_RISCV_V 1 +#endif +#if defined(__riscv_zvfh) +# define SIMDE_ARCH_RISCV_ZVFH 1 +#endif +#if defined(__riscv_zvfhmin) +# define SIMDE_ARCH_RISCV_ZVFHMIN 1 +#endif + +/* SPARC + */ +#if defined(__sparc_v9__) || defined(__sparcv9) +# define SIMDE_ARCH_SPARC 9 +#elif defined(__sparc_v8__) || defined(__sparcv8) +# define SIMDE_ARCH_SPARC 8 +#elif defined(__sparc_v7__) || defined(__sparcv7) +# define SIMDE_ARCH_SPARC 7 +#elif defined(__sparc_v6__) || defined(__sparcv6) +# define SIMDE_ARCH_SPARC 6 +#elif defined(__sparc_v5__) || defined(__sparcv5) +# define SIMDE_ARCH_SPARC 5 +#elif defined(__sparc_v4__) || defined(__sparcv4) +# define SIMDE_ARCH_SPARC 4 +#elif defined(__sparc_v3__) || defined(__sparcv3) +# define SIMDE_ARCH_SPARC 3 +#elif defined(__sparc_v2__) || defined(__sparcv2) +# define SIMDE_ARCH_SPARC 2 +#elif defined(__sparc_v1__) || defined(__sparcv1) +# define SIMDE_ARCH_SPARC 1 +#elif defined(__sparc__) || defined(__sparc) +# define SIMDE_ARCH_SPARC 1 +#endif +#if defined(SIMDE_ARCH_SPARC) + #define SIMDE_ARCH_SPARC_CHECK(version) ((version) <= SIMDE_ARCH_SPARC) +#else + #define SIMDE_ARCH_SPARC_CHECK(version) (0) +#endif + +/* SuperH + */ +#if defined(__sh5__) || defined(__SH5__) +# define SIMDE_ARCH_SUPERH 5 +#elif defined(__sh4__) || defined(__SH4__) +# define SIMDE_ARCH_SUPERH 4 +#elif defined(__sh3__) || defined(__SH3__) +# define SIMDE_ARCH_SUPERH 3 +#elif defined(__sh2__) || defined(__SH2__) +# define SIMDE_ARCH_SUPERH 2 +#elif defined(__sh1__) || defined(__SH1__) +# define SIMDE_ARCH_SUPERH 1 +#elif defined(__sh__) || defined(__SH__) +# define SIMDE_ARCH_SUPERH 1 +#endif + +/* IBM System z + */ +#if defined(__370__) || defined(__THW_370__) || defined(__s390__) || defined(__s390x__) || defined(__zarch__) || defined(__SYSC_ZARCH__) +# define SIMDE_ARCH_ZARCH __ARCH__ +#endif +#if defined(SIMDE_ARCH_ZARCH) + #define SIMDE_ARCH_ZARCH_CHECK(version) ((version) <= SIMDE_ARCH_ZARCH) +#else + #define SIMDE_ARCH_ZARCH_CHECK(version) (0) +#endif + +#if defined(SIMDE_ARCH_ZARCH) && defined(__VEC__) + #define SIMDE_ARCH_ZARCH_ZVECTOR SIMDE_ARCH_ZARCH +#endif + +/* TMS320 DSP + */ +#if defined(_TMS320C6740) || defined(__TMS320C6740__) +# define SIMDE_ARCH_TMS320 6740 +#elif defined(_TMS320C6700_PLUS) || defined(__TMS320C6700_PLUS__) +# define SIMDE_ARCH_TMS320 6701 +#elif defined(_TMS320C6700) || defined(__TMS320C6700__) +# define SIMDE_ARCH_TMS320 6700 +#elif defined(_TMS320C6600) || defined(__TMS320C6600__) +# define SIMDE_ARCH_TMS320 6600 +#elif defined(_TMS320C6400_PLUS) || defined(__TMS320C6400_PLUS__) +# define SIMDE_ARCH_TMS320 6401 +#elif defined(_TMS320C6400) || defined(__TMS320C6400__) +# define SIMDE_ARCH_TMS320 6400 +#elif defined(_TMS320C6200) || defined(__TMS320C6200__) +# define SIMDE_ARCH_TMS320 6200 +#elif defined(_TMS320C55X) || defined(__TMS320C55X__) +# define SIMDE_ARCH_TMS320 550 +#elif defined(_TMS320C54X) || defined(__TMS320C54X__) +# define SIMDE_ARCH_TMS320 540 +#elif defined(_TMS320C28X) || defined(__TMS320C28X__) +# define SIMDE_ARCH_TMS320 280 +#endif +#if defined(SIMDE_ARCH_TMS320) + #define SIMDE_ARCH_TMS320_CHECK(version) ((version) <= SIMDE_ARCH_TMS320) +#else + #define SIMDE_ARCH_TMS320_CHECK(version) (0) +#endif + +/* WebAssembly */ +#if defined(__wasm__) +# define SIMDE_ARCH_WASM 1 +#endif + +#if defined(SIMDE_ARCH_WASM) && defined(__wasm_simd128__) +# define SIMDE_ARCH_WASM_SIMD128 +#endif + +#if defined(SIMDE_ARCH_WASM) && defined(__wasm_relaxed_simd__) +# define SIMDE_ARCH_WASM_RELAXED_SIMD +#endif + +/* Xtensa + */ +#if defined(__xtensa__) || defined(__XTENSA__) +# define SIMDE_ARCH_XTENSA 1 +#endif + +/* Availability of 16-bit floating-point arithmetic intrinsics */ +#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) +# define SIMDE_ARCH_ARM_NEON_FP16 +#endif + +/* Availability of 16-bit brain floating-point arithmetic intrinsics */ +#if defined(__ARM_FEATURE_BF16_VECTOR_ARITHMETIC) +# define SIMDE_ARCH_ARM_NEON_BF16 +#endif + +/* LoongArch + */ +#if defined(__loongarch32) +# define SIMDE_ARCH_LOONGARCH 1 +#elif defined(__loongarch64) +# define SIMDE_ARCH_LOONGARCH 2 +#endif + +/* LSX: LoongArch 128-bits SIMD extension */ +#if defined(__loongarch_sx) +# define SIMDE_ARCH_LOONGARCH_LSX 1 +#endif + +/* LASX: LoongArch 256-bits SIMD extension */ +#if defined(__loongarch_asx) +# define SIMDE_ARCH_LOONGARCH_LASX 2 +#endif + +#endif /* !defined(SIMDE_ARCH_H) */ +/* :: End simde/simde-arch.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/simde-features.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2020 Evan Nemerson + * 2023 Ju-Hung Li (Copyright owned by NTHU pllab) + */ + +/* simde-arch.h is used to determine which features are available according + to the compiler. However, we want to make it possible to forcibly enable + or disable APIs */ + +#if !defined(SIMDE_FEATURES_H) +#define SIMDE_FEATURES_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/simde-diagnostic.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2017-2020 Evan Nemerson + */ + +/* SIMDe targets a very wide range of standards and compilers, and our + * goal is to compile cleanly even with extremely aggressive warnings + * (i.e., -Weverything in clang, -Wextra in GCC, /W4 for MSVC, etc.) + * treated as errors. + * + * While our preference is to resolve the underlying issue a given + * diagnostic is warning us about, sometimes that's not possible. + * Fixing a warning in one compiler may cause problems in another. + * Sometimes a warning doesn't really apply to us (false positives), + * and sometimes adhering to a warning would mean dropping a feature + * we *know* the compiler supports since we have tested specifically + * for the compiler or feature. + * + * When practical, warnings are only disabled for specific code. For + * a list of warnings which are enabled by default in all SIMDe code, + * see SIMDE_DISABLE_UNWANTED_DIAGNOSTICS. Note that we restore the + * warning stack when SIMDe is done parsing, so code which includes + * SIMDe is not deprived of these warnings. + */ + +#if !defined(SIMDE_DIAGNOSTIC_H) +#define SIMDE_DIAGNOSTIC_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ + +/* This is only to help us implement functions like _mm_undefined_ps. */ +#if defined(SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_) + #undef SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ +#endif +#if HEDLEY_HAS_WARNING("-Wuninitialized") + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("clang diagnostic ignored \"-Wuninitialized\"") +#elif HEDLEY_GCC_VERSION_CHECK(4,2,0) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("GCC diagnostic ignored \"-Wuninitialized\"") +#elif HEDLEY_PGI_VERSION_CHECK(19,10,0) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("diag_suppress 549") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("error_messages(off,SEC_UNINITIALIZED_MEM_READ,SEC_UNDEFINED_RETURN_VALUE,unassigned)") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("error_messages(off,SEC_UNINITIALIZED_MEM_READ,SEC_UNDEFINED_RETURN_VALUE)") +#elif HEDLEY_SUNPRO_VERSION_CHECK(5,12,0) && defined(__cplusplus) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("error_messages(off,unassigned)") +#elif \ + HEDLEY_TI_VERSION_CHECK(16,9,9) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,2) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("diag_suppress 551") +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ _Pragma("warning(disable:592)") +#elif HEDLEY_MSVC_VERSION_CHECK(19,0,0) && !defined(__MSVC_RUNTIME_CHECKS) + #define SIMDE_DIAGNOSTIC_DISABLE_UNINITIALIZED_ __pragma(warning(disable:4700)) +#endif + +/* GCC emits a lot of "notes" about the ABI being different for things + * in newer versions of GCC. We don't really care because all our + * functions are inlined and don't generate ABI. */ +#if HEDLEY_GCC_VERSION_CHECK(7,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_PSABI_ _Pragma("GCC diagnostic ignored \"-Wpsabi\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PSABI_ +#endif + +/* Since MMX uses x87 FP registers, you're supposed to call _mm_empty() + * after each MMX function before any floating point instructions. + * Some compilers warn about functions which use MMX functions but + * don't call _mm_empty(). However, since SIMDe is implementyng the + * MMX API we shouldn't be calling _mm_empty(); we leave it to the + * caller to invoke simde_mm_empty(). */ +#if HEDLEY_INTEL_VERSION_CHECK(19,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_NO_EMMS_INSTRUCTION_ _Pragma("warning(disable:13200 13203)") +#elif defined(HEDLEY_MSVC_VERSION) + #define SIMDE_DIAGNOSTIC_DISABLE_NO_EMMS_INSTRUCTION_ __pragma(warning(disable:4799)) +#else + #define SIMDE_DIAGNOSTIC_DISABLE_NO_EMMS_INSTRUCTION_ +#endif + +/* Intel is pushing people to use OpenMP SIMD instead of Cilk+, so they + * emit a diagnostic if you use #pragma simd instead of + * #pragma omp simd. SIMDe supports OpenMP SIMD, you just need to + * compile with -qopenmp or -qopenmp-simd and define + * SIMDE_ENABLE_OPENMP. Cilk+ is just a fallback. */ +#if HEDLEY_INTEL_VERSION_CHECK(18,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_SIMD_PRAGMA_DEPRECATED_ _Pragma("warning(disable:3948)") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_SIMD_PRAGMA_DEPRECATED_ +#endif + +/* MSVC emits a diagnostic when we call a function (like + * simde_mm_set_epi32) while initializing a struct. We currently do + * this a *lot* in the tests. */ +#if \ + defined(HEDLEY_MSVC_VERSION) + #define SIMDE_DIAGNOSTIC_DISABLE_NON_CONSTANT_AGGREGATE_INITIALIZER_ __pragma(warning(disable:4204)) +#else + #define SIMDE_DIAGNOSTIC_DISABLE_NON_CONSTANT_AGGREGATE_INITIALIZER_ +#endif + +/* This warning needs a lot of work. It is triggered if all you do is + * pass the value to memcpy/__builtin_memcpy, or if you initialize a + * member of the union, even if that member takes up the entire union. + * Last tested with clang-10, hopefully things will improve in the + * future; if clang fixes this I'd love to enable it. */ +#if \ + HEDLEY_HAS_WARNING("-Wconditional-uninitialized") + #define SIMDE_DIAGNOSTIC_DISABLE_CONDITIONAL_UNINITIALIZED_ _Pragma("clang diagnostic ignored \"-Wconditional-uninitialized\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_CONDITIONAL_UNINITIALIZED_ +#endif + +/* This warning is meant to catch things like `0.3 + 0.4 == 0.7`, which + * will is false. However, SIMDe uses these operations exclusively + * for things like _mm_cmpeq_ps, for which we really do want to check + * for equality (or inequality). + * + * If someone wants to put together a SIMDE_FLOAT_EQUAL(a, op, b) macro + * which just wraps a check in some code do disable this diagnostic I'd + * be happy to accept it. */ +#if \ + HEDLEY_HAS_WARNING("-Wfloat-equal") || \ + HEDLEY_GCC_VERSION_CHECK(3,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL_ _Pragma("GCC diagnostic ignored \"-Wfloat-equal\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL_ +#endif + +/* This is because we use HEDLEY_STATIC_ASSERT for static assertions. + * If Hedley can't find an implementation it will preprocess to + * nothing, which means there will be a trailing semi-colon. */ +#if HEDLEY_HAS_WARNING("-Wextra-semi") + #define SIMDE_DIAGNOSTIC_DISABLE_EXTRA_SEMI_ _Pragma("clang diagnostic ignored \"-Wextra-semi\"") +#elif HEDLEY_GCC_VERSION_CHECK(8,1,0) && defined(__cplusplus) + #define SIMDE_DIAGNOSTIC_DISABLE_EXTRA_SEMI_ _Pragma("GCC diagnostic ignored \"-Wextra-semi\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_EXTRA_SEMI_ +#endif + +/* We do use a few variadic macros, which technically aren't available + * until C99 and C++11, but every compiler I'm aware of has supported + * them for much longer. That said, usage is isolated to the test + * suite and compilers known to support them. */ +#if HEDLEY_HAS_WARNING("-Wvariadic-macros") || HEDLEY_GCC_VERSION_CHECK(4,0,0) + #if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") + #define SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ \ + _Pragma("clang diagnostic ignored \"-Wvariadic-macros\"") \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat-pedantic\"") + #else + #define SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ _Pragma("GCC diagnostic ignored \"-Wvariadic-macros\"") + #endif +#else + #define SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ +#endif + +/* emscripten requires us to use a __wasm_unimplemented_simd128__ macro + * before we can access certain SIMD intrinsics, but this diagnostic + * warns about it being a reserved name. It is a reserved name, but + * it's reserved for the compiler and we are using it to convey + * information to the compiler. + * + * This is also used when enabling native aliases since we don't get to + * choose the macro names. */ +#if HEDLEY_HAS_WARNING("-Wreserved-id-macro") + #define SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_MACRO_ _Pragma("clang diagnostic ignored \"-Wreserved-id-macro\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_MACRO_ +#endif + +/* Similar to above; types like simde__m128i are reserved due to the + * double underscore, but we didn't choose them, Intel did. */ +#if HEDLEY_HAS_WARNING("-Wreserved-identifier") + #define SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_ _Pragma("clang diagnostic ignored \"-Wreserved-identifier\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_ +#endif + +/* clang 3.8 warns about the packed attribute being unnecessary when + * used in the _mm_loadu_* functions. That *may* be true for version + * 3.8, but for later versions it is crucial in order to make unaligned + * access safe. */ +#if HEDLEY_HAS_WARNING("-Wpacked") + #define SIMDE_DIAGNOSTIC_DISABLE_PACKED_ _Pragma("clang diagnostic ignored \"-Wpacked\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PACKED_ +#endif + +/* Triggered when assigning a float to a double implicitly. We use + * explicit casts in SIMDe, this is only used in the test suite. */ +#if HEDLEY_HAS_WARNING("-Wdouble-promotion") + #define SIMDE_DIAGNOSTIC_DISABLE_DOUBLE_PROMOTION_ _Pragma("clang diagnostic ignored \"-Wdouble-promotion\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_DOUBLE_PROMOTION_ +#endif + +/* Several compilers treat conformant array parameters as VLAs. We + * test to make sure we're in C mode (C++ doesn't support CAPs), and + * that the version of the standard supports CAPs. We also reject + * some buggy compilers like MSVC (the logic is in Hedley if you want + * to take a look), but with certain warnings enabled some compilers + * still like to emit a diagnostic. */ +#if HEDLEY_HAS_WARNING("-Wvla") + #define SIMDE_DIAGNOSTIC_DISABLE_VLA_ _Pragma("clang diagnostic ignored \"-Wvla\"") +#elif HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define SIMDE_DIAGNOSTIC_DISABLE_VLA_ _Pragma("GCC diagnostic ignored \"-Wvla\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_VLA_ +#endif + +/* If you add an unused attribute to a function and don't use it, clang + * may emit this. */ +#if HEDLEY_HAS_WARNING("-Wused-but-marked-unused") + #define SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ _Pragma("clang diagnostic ignored \"-Wused-but-marked-unused\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ +#endif + +#if HEDLEY_HAS_WARNING("-Wpass-failed") + #define SIMDE_DIAGNOSTIC_DISABLE_PASS_FAILED_ _Pragma("clang diagnostic ignored \"-Wpass-failed\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PASS_FAILED_ +#endif + +#if HEDLEY_HAS_WARNING("-Wpadded") + #define SIMDE_DIAGNOSTIC_DISABLE_PADDED_ _Pragma("clang diagnostic ignored \"-Wpadded\"") +#elif HEDLEY_MSVC_VERSION_CHECK(19,0,0) /* Likely goes back further */ + #define SIMDE_DIAGNOSTIC_DISABLE_PADDED_ __pragma(warning(disable:4324)) +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PADDED_ +#endif + +#if HEDLEY_HAS_WARNING("-Wzero-as-null-pointer-constant") + #define SIMDE_DIAGNOSTIC_DISABLE_ZERO_AS_NULL_POINTER_CONSTANT_ _Pragma("clang diagnostic ignored \"-Wzero-as-null-pointer-constant\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_ZERO_AS_NULL_POINTER_CONSTANT_ +#endif + +#if HEDLEY_HAS_WARNING("-Wold-style-cast") + #define SIMDE_DIAGNOSTIC_DISABLE_OLD_STYLE_CAST_ _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_OLD_STYLE_CAST_ +#endif + +#if HEDLEY_HAS_WARNING("-Wcast-function-type") || HEDLEY_GCC_VERSION_CHECK(8,0,0) + #define SIMDE_DIAGNOSTIC_DISABLE_CAST_FUNCTION_TYPE_ _Pragma("GCC diagnostic ignored \"-Wcast-function-type\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_CAST_FUNCTION_TYPE_ +#endif + +/* clang will emit this warning when we use C99 extensions when not in + * C99 mode, even though it does support this. In such cases we check + * the compiler and version first, so we know it's not a problem. */ +#if HEDLEY_HAS_WARNING("-Wc99-extensions") + #define SIMDE_DIAGNOSTIC_DISABLE_C99_EXTENSIONS_ _Pragma("clang diagnostic ignored \"-Wc99-extensions\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_C99_EXTENSIONS_ +#endif + +/* Similar problm as above; we rely on some basic C99 support, but clang + * has started warning obut this even in C17 mode with -Weverything. */ +#if HEDLEY_HAS_WARNING("-Wdeclaration-after-statement") + #define SIMDE_DIAGNOSTIC_DISABLE_DECLARATION_AFTER_STATEMENT_ _Pragma("clang diagnostic ignored \"-Wdeclaration-after-statement\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_DECLARATION_AFTER_STATEMENT_ +#endif + +/* https://github.com/simd-everywhere/simde/issues/277 */ +#if defined(HEDLEY_GCC_VERSION) && HEDLEY_GCC_VERSION_CHECK(4,6,0) && !HEDLEY_GCC_VERSION_CHECK(6,4,0) && defined(__cplusplus) + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_UNUSED_BUT_SET_VARIBALE_ _Pragma("GCC diagnostic ignored \"-Wunused-but-set-variable\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_UNUSED_BUT_SET_VARIBALE_ +#endif + +/* This is the warning that you normally define _CRT_SECURE_NO_WARNINGS + * to silence, but you have to do that before including anything and + * that would require reordering includes. */ +#if defined(_MSC_VER) + #define SIMDE_DIAGNOSTIC_DISABLE_ANNEX_K_ __pragma(warning(disable:4996)) +#else + #define SIMDE_DIAGNOSTIC_DISABLE_ANNEX_K_ +#endif + +/* Some compilers, such as clang, may use `long long` for 64-bit + * integers, but `long long` triggers a diagnostic with + * -Wc++98-compat-pedantic which says 'long long' is incompatible with + * C++98. */ +#if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") + #if HEDLEY_HAS_WARNING("-Wc++11-long-long") + #define SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat-pedantic\"") \ + _Pragma("clang diagnostic ignored \"-Wc++11-long-long\"") + #else + #define SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ _Pragma("clang diagnostic ignored \"-Wc++98-compat-pedantic\"") + #endif +#else + #define SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ +#endif + +/* Some problem as above */ +#if HEDLEY_HAS_WARNING("-Wc++11-long-long") + #define SIMDE_DIAGNOSTIC_DISABLE_CPP11_LONG_LONG_ _Pragma("clang diagnostic ignored \"-Wc++11-long-long\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_CPP11_LONG_LONG_ +#endif + +/* emscripten emits this whenever stdin/stdout/stderr is used in a + * macro. */ +#if HEDLEY_HAS_WARNING("-Wdisabled-macro-expansion") + #define SIMDE_DIAGNOSTIC_DISABLE_DISABLED_MACRO_EXPANSION_ _Pragma("clang diagnostic ignored \"-Wdisabled-macro-expansion\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_DISABLED_MACRO_EXPANSION_ +#endif + +/* Clang uses C11 generic selections to implement some AltiVec + * functions, which triggers this diagnostic when not compiling + * in C11 mode */ +#if HEDLEY_HAS_WARNING("-Wc11-extensions") + #define SIMDE_DIAGNOSTIC_DISABLE_C11_EXTENSIONS_ _Pragma("clang diagnostic ignored \"-Wc11-extensions\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_C11_EXTENSIONS_ +#endif + +/* Clang sometimes triggers this warning in macros in the AltiVec and + * NEON headers, or due to missing functions. */ +#if HEDLEY_HAS_WARNING("-Wvector-conversion") + #define SIMDE_DIAGNOSTIC_DISABLE_VECTOR_CONVERSION_ _Pragma("clang diagnostic ignored \"-Wvector-conversion\"") + /* For NEON, the situation with -Wvector-conversion in clang < 10 is + * bad enough that we just disable the warning altogether. On x86, + * clang has similar issues on several sse4.2+ intrinsics before 3.8. */ + #if \ + (defined(SIMDE_ARCH_ARM) && SIMDE_DETECT_CLANG_VERSION_NOT(10,0,0)) || \ + SIMDE_DETECT_CLANG_VERSION_NOT(3,8,0) + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_VECTOR_CONVERSION_ SIMDE_DIAGNOSTIC_DISABLE_VECTOR_CONVERSION_ + #endif +#else + #define SIMDE_DIAGNOSTIC_DISABLE_VECTOR_CONVERSION_ +#endif +#if !defined(SIMDE_DIAGNOSTIC_DISABLE_BUGGY_VECTOR_CONVERSION_) + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_VECTOR_CONVERSION_ +#endif + +/* Prior to 5.0, clang didn't support disabling diagnostics in + * statement exprs. As a result, some macros we use don't + * properly silence warnings. */ +#if SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) && HEDLEY_HAS_WARNING("-Wcast-qual") && HEDLEY_HAS_WARNING("-Wcast-align") + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ _Pragma("clang diagnostic ignored \"-Wcast-qual\"") _Pragma("clang diagnostic ignored \"-Wcast-align\"") +#elif SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) && HEDLEY_HAS_WARNING("-Wcast-qual") + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) && HEDLEY_HAS_WARNING("-Wcast-align") + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ _Pragma("clang diagnostic ignored \"-Wcast-align\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ +#endif + +/* SLEEF triggers this a *lot* in their headers */ +#if HEDLEY_HAS_WARNING("-Wignored-qualifiers") + #define SIMDE_DIAGNOSTIC_DISABLE_IGNORED_QUALIFIERS_ _Pragma("clang diagnostic ignored \"-Wignored-qualifiers\"") +#elif HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define SIMDE_DIAGNOSTIC_DISABLE_IGNORED_QUALIFIERS_ _Pragma("GCC diagnostic ignored \"-Wignored-qualifiers\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_IGNORED_QUALIFIERS_ +#endif + +/* GCC emits this under some circumstances when using __int128 */ +#if HEDLEY_GCC_VERSION_CHECK(4,8,0) + #define SIMDE_DIAGNOSTIC_DISABLE_PEDANTIC_ _Pragma("GCC diagnostic ignored \"-Wpedantic\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_PEDANTIC_ +#endif + +/* MSVC doesn't like (__assume(0), code) and will warn about code being + * unreachable, but we want it there because not all compilers + * understand the unreachable macro and will complain if it is missing. + * I'm planning on adding a new macro to Hedley to handle this a bit + * more elegantly, but until then... */ +#if defined(HEDLEY_MSVC_VERSION) + #define SIMDE_DIAGNOSTIC_DISABLE_UNREACHABLE_ __pragma(warning(disable:4702)) +#elif defined(__clang__) + #define SIMDE_DIAGNOSTIC_DISABLE_UNREACHABLE_ HEDLEY_PRAGMA(clang diagnostic ignored "-Wunreachable-code") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_UNREACHABLE_ +#endif + +/* This is a false positive from GCC in a few places. */ +#if HEDLEY_GCC_VERSION_CHECK(4,7,0) + #define SIMDE_DIAGNOSTIC_DISABLE_MAYBE_UNINITIAZILED_ _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +#else + #define SIMDE_DIAGNOSTIC_DISABLE_MAYBE_UNINITIAZILED_ +#endif + +#if defined(SIMDE_ENABLE_NATIVE_ALIASES) + #define SIMDE_DISABLE_UNWANTED_DIAGNOSTICS_NATIVE_ALIASES_ \ + SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_MACRO_ +#else + #define SIMDE_DISABLE_UNWANTED_DIAGNOSTICS_NATIVE_ALIASES_ +#endif + +/* Some native functions on E2K with instruction set < v6 are declared + * as deprecated due to inefficiency. Still they are more efficient + * than SIMDe implementation. So we're using them, and switching off + * these deprecation warnings. */ +#if defined(HEDLEY_MCST_LCC_VERSION) +# define SIMDE_LCC_DISABLE_DEPRECATED_WARNINGS _Pragma("diag_suppress 1215,1444") +# define SIMDE_LCC_REVERT_DEPRECATED_WARNINGS _Pragma("diag_default 1215,1444") +#else +# define SIMDE_LCC_DISABLE_DEPRECATED_WARNINGS +# define SIMDE_LCC_REVERT_DEPRECATED_WARNINGS +#endif + +#define SIMDE_DISABLE_UNWANTED_DIAGNOSTICS \ + HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION \ + SIMDE_DISABLE_UNWANTED_DIAGNOSTICS_NATIVE_ALIASES_ \ + SIMDE_DIAGNOSTIC_DISABLE_PSABI_ \ + SIMDE_DIAGNOSTIC_DISABLE_NO_EMMS_INSTRUCTION_ \ + SIMDE_DIAGNOSTIC_DISABLE_SIMD_PRAGMA_DEPRECATED_ \ + SIMDE_DIAGNOSTIC_DISABLE_CONDITIONAL_UNINITIALIZED_ \ + SIMDE_DIAGNOSTIC_DISABLE_DECLARATION_AFTER_STATEMENT_ \ + SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL_ \ + SIMDE_DIAGNOSTIC_DISABLE_NON_CONSTANT_AGGREGATE_INITIALIZER_ \ + SIMDE_DIAGNOSTIC_DISABLE_EXTRA_SEMI_ \ + SIMDE_DIAGNOSTIC_DISABLE_VLA_ \ + SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ \ + SIMDE_DIAGNOSTIC_DISABLE_PASS_FAILED_ \ + SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ \ + SIMDE_DIAGNOSTIC_DISABLE_CPP11_LONG_LONG_ \ + SIMDE_DIAGNOSTIC_DISABLE_BUGGY_UNUSED_BUT_SET_VARIBALE_ \ + SIMDE_DIAGNOSTIC_DISABLE_BUGGY_CASTS_ \ + SIMDE_DIAGNOSTIC_DISABLE_BUGGY_VECTOR_CONVERSION_ \ + SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_ + +#endif /* !defined(SIMDE_DIAGNOSTIC_H) */ +/* :: End simde/simde-diagnostic.h :: */ + +#if !defined(SIMDE_X86_SVML_NATIVE) && !defined(SIMDE_X86_SVML_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SVML) + #define SIMDE_X86_SVML_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_AVX512VP2INTERSECT_NATIVE) && !defined(SIMDE_X86_AVX512VP2INTERSECT_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VP2INTERSECT) + #define SIMDE_X86_AVX512VP2INTERSECT_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VP2INTERSECT_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VPOPCNTDQ_NATIVE) && !defined(SIMDE_X86_AVX512VPOPCNTDQ_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VPOPCNTDQ) + #define SIMDE_X86_AVX512VPOPCNTDQ_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VPOPCNTDQ_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512BITALG_NATIVE) && !defined(SIMDE_X86_AVX512BITALG_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512BITALG) + #define SIMDE_X86_AVX512BITALG_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512BITALG_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VBMI_NATIVE) && !defined(SIMDE_X86_AVX512VBMI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VBMI) + #define SIMDE_X86_AVX512VBMI_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VBMI_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VBMI2_NATIVE) && !defined(SIMDE_X86_AVX512VBMI2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VBMI2) + #define SIMDE_X86_AVX512VBMI2_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VBMI2_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VNNI_NATIVE) && !defined(SIMDE_X86_AVX512VNNI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VNNI) + #define SIMDE_X86_AVX512VNNI_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VNNI_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX5124VNNIW_NATIVE) && !defined(SIMDE_X86_AVX5124VNNIW_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX5124VNNIW) + #define SIMDE_X86_AVX5124VNNIW_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX5124VNNIW_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512CD_NATIVE) && !defined(SIMDE_X86_AVX512CD_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512CD) + #define SIMDE_X86_AVX512CD_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512CD_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512DQ_NATIVE) && !defined(SIMDE_X86_AVX512DQ_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512DQ) + #define SIMDE_X86_AVX512DQ_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512DQ_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512VL_NATIVE) && !defined(SIMDE_X86_AVX512VL_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512VL) + #define SIMDE_X86_AVX512VL_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512VL_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512BW_NATIVE) && !defined(SIMDE_X86_AVX512BW_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512BW) + #define SIMDE_X86_AVX512BW_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512BW_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512FP16_NATIVE) && !defined(SIMDE_X86_AVX512FP16_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512FP16) + #define SIMDE_X86_AVX512FP16_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512BW_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512BF16_NATIVE) && !defined(SIMDE_X86_AVX512BF16_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512BF16) + #define SIMDE_X86_AVX512BF16_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512BF16_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX512F_NATIVE) && !defined(SIMDE_X86_AVX512F_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX512F) + #define SIMDE_X86_AVX512F_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX512F_NATIVE) && !defined(SIMDE_X86_AVX2_NATIVE) + #define SIMDE_X86_AVX2_NATIVE +#endif + +#if !defined(SIMDE_X86_FMA_NATIVE) && !defined(SIMDE_X86_FMA_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_FMA) + #define SIMDE_X86_FMA_NATIVE + #endif +#endif +#if defined(SIMDE_X86_FMA_NATIVE) && !defined(SIMDE_X86_AVX_NATIVE) + #define SIMDE_X86_AVX_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX2_NATIVE) && !defined(SIMDE_X86_AVX2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX2) + #define SIMDE_X86_AVX2_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX2_NATIVE) && !defined(SIMDE_X86_AVX_NATIVE) + #define SIMDE_X86_AVX_NATIVE +#endif + +#if !defined(SIMDE_X86_AVX_NATIVE) && !defined(SIMDE_X86_AVX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AVX) + #define SIMDE_X86_AVX_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AVX_NATIVE) && !defined(SIMDE_X86_SSE4_2_NATIVE) + #define SIMDE_X86_SSE4_2_NATIVE +#endif + +#if !defined(SIMDE_X86_XOP_NATIVE) && !defined(SIMDE_X86_XOP_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_XOP) + #define SIMDE_X86_XOP_NATIVE + #endif +#endif +#if defined(SIMDE_X86_XOP_NATIVE) && !defined(SIMDE_X86_SSE4_2_NATIVE) + #define SIMDE_X86_SSE4_2_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE4_2_NATIVE) && !defined(SIMDE_X86_SSE4_2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE4_2) + #define SIMDE_X86_SSE4_2_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSE4_2_NATIVE) && !defined(SIMDE_X86_SSE4_1_NATIVE) + #define SIMDE_X86_SSE4_1_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE4_1_NATIVE) && !defined(SIMDE_X86_SSE4_1_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE4_1) + #define SIMDE_X86_SSE4_1_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSE4_1_NATIVE) && !defined(SIMDE_X86_SSSE3_NATIVE) + #define SIMDE_X86_SSSE3_NATIVE +#endif + +#if !defined(SIMDE_X86_SSSE3_NATIVE) && !defined(SIMDE_X86_SSSE3_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSSE3) + #define SIMDE_X86_SSSE3_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSSE3_NATIVE) && !defined(SIMDE_X86_SSE3_NATIVE) + #define SIMDE_X86_SSE3_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE3_NATIVE) && !defined(SIMDE_X86_SSE3_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE3) + #define SIMDE_X86_SSE3_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSE3_NATIVE) && !defined(SIMDE_X86_SSE2_NATIVE) + #define SIMDE_X86_SSE2_NATIVE +#endif + +#if !defined(SIMDE_X86_AES_NATIVE) && !defined(SIMDE_X86_AES_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_AES) + #define SIMDE_X86_AES_NATIVE + #endif +#endif +#if defined(SIMDE_X86_AES_NATIVE) && !defined(SIMDE_X86_SSE2_NATIVE) + #define SIMDE_X86_SSE2_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE2_NATIVE) && !defined(SIMDE_X86_SSE2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE2) + #define SIMDE_X86_SSE2_NATIVE + #endif +#endif +#if defined(SIMDE_X86_SSE2_NATIVE) && !defined(SIMDE_X86_SSE_NATIVE) + #define SIMDE_X86_SSE_NATIVE +#endif + +#if !defined(SIMDE_X86_SSE_NATIVE) && !defined(SIMDE_X86_SSE_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_SSE) + #define SIMDE_X86_SSE_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_MMX_NATIVE) && !defined(SIMDE_X86_MMX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_MMX) + #define SIMDE_X86_MMX_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_GFNI_NATIVE) && !defined(SIMDE_X86_GFNI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_GFNI) + #define SIMDE_X86_GFNI_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_PCLMUL_NATIVE) && !defined(SIMDE_X86_PCLMUL_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_PCLMUL) + #define SIMDE_X86_PCLMUL_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_VPCLMULQDQ_NATIVE) && !defined(SIMDE_X86_VPCLMULQDQ_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_VPCLMULQDQ) + #define SIMDE_X86_VPCLMULQDQ_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_F16C_NATIVE) && !defined(SIMDE_X86_F16C_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86_F16C) + #define SIMDE_X86_F16C_NATIVE + #endif +#endif + +#if !defined(SIMDE_X86_SVML_NATIVE) && !defined(SIMDE_X86_SVML_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_X86) && (defined(__INTEL_COMPILER) || (HEDLEY_MSVC_VERSION_CHECK(14, 20, 0) && !defined(__clang__))) + #define SIMDE_X86_SVML_NATIVE + #endif +#endif + +#if defined(HEDLEY_MSVC_VERSION) + #pragma warning(push) + #pragma warning(disable:4799) +#endif + +#if \ + defined(SIMDE_X86_AVX_NATIVE) || defined(SIMDE_X86_GFNI_NATIVE) || defined(SIMDE_X86_SVML_NATIVE) + #include +#elif defined(SIMDE_X86_SSE4_2_NATIVE) + #include +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #include +#elif defined(SIMDE_X86_SSSE3_NATIVE) + #include +#elif defined(SIMDE_X86_SSE3_NATIVE) + #include +#elif defined(SIMDE_X86_SSE2_NATIVE) + #include +#elif defined(SIMDE_X86_SSE_NATIVE) + #include +#elif defined(SIMDE_X86_MMX_NATIVE) + #include +#endif + +#if defined(SIMDE_X86_XOP_NATIVE) + #if defined(_MSC_VER) + #include + #else + #include + #endif +#endif + +#if defined(SIMDE_X86_AES_NATIVE) + #include +#endif + +#if defined(HEDLEY_MSVC_VERSION) + #pragma warning(pop) +#endif + +#if !defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_ARM_NEON_A64V8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_ARM_NEON) && defined(SIMDE_ARCH_AARCH64) && SIMDE_ARCH_ARM_CHECK(8,0) + #define SIMDE_ARM_NEON_A64V8_NATIVE + #endif +#endif +#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #define SIMDE_ARM_NEON_A32V8_NATIVE +#endif + +#if !defined(SIMDE_ARM_NEON_A32V8_NATIVE) && !defined(SIMDE_ARM_NEON_A32V8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_ARM_NEON) && SIMDE_ARCH_ARM_CHECK(8,0) && (__ARM_NEON_FP & 0x02) + #define SIMDE_ARM_NEON_A32V8_NATIVE + #endif +#endif +#if defined(__ARM_ACLE) + #include +#endif +#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && !defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define SIMDE_ARM_NEON_A32V7_NATIVE +#endif + +#if !defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_ARM_NEON_A32V7_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_ARM_NEON) && SIMDE_ARCH_ARM_CHECK(7,0) + #define SIMDE_ARM_NEON_A32V7_NATIVE + #endif +#endif +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #include + #if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) + #include + #endif +#endif + +#if !defined(SIMDE_ARM_SVE_NATIVE) && !defined(SIMDE_ARM_SVE_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_ARM_SVE) + #define SIMDE_ARM_SVE_NATIVE + #include + #endif +#endif + +#if !defined(SIMDE_RISCV_V_NATIVE) && !defined(SIMDE_RISCV_V_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_RISCV_V) + #define SIMDE_RISCV_V_NATIVE + #endif +#endif +#if defined(SIMDE_RISCV_V_NATIVE) + #include +#endif + +#if !defined(SIMDE_WASM_SIMD128_NATIVE) && !defined(SIMDE_WASM_SIMD128_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_WASM_SIMD128) + #define SIMDE_WASM_SIMD128_NATIVE + #endif +#endif + +#if !defined(SIMDE_WASM_RELAXED_SIMD_NATIVE) && !defined(SIMDE_WASM_RELAXED_SIMD_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_WASM_RELAXED_SIMD) + #define SIMDE_WASM_RELAXED_SIMD_NATIVE + #endif +#endif +#if defined(SIMDE_WASM_SIMD128_NATIVE) || defined(SIMDE_WASM_RELAXED_SIMD_NATIVE) + #include +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P9_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P9_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(900) + #define SIMDE_POWER_ALTIVEC_P9_NATIVE + #endif +#endif +#if defined(SIMDE_POWER_ALTIVEC_P9_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P8) + #define SIMDE_POWER_ALTIVEC_P8_NATIVE +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(800) + #define SIMDE_POWER_ALTIVEC_P8_NATIVE + #endif +#endif +#if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P7) + #define SIMDE_POWER_ALTIVEC_P7_NATIVE +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P7_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(700) + #define SIMDE_POWER_ALTIVEC_P7_NATIVE + #endif +#endif +#if defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P6) + #define SIMDE_POWER_ALTIVEC_P6_NATIVE +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P6_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(600) + #define SIMDE_POWER_ALTIVEC_P6_NATIVE + #endif +#endif +#if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P5) + #define SIMDE_POWER_ALTIVEC_P5_NATIVE +#endif + +#if !defined(SIMDE_POWER_ALTIVEC_P5_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P5_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(500) + #define SIMDE_POWER_ALTIVEC_P5_NATIVE + #endif +#endif + +#if !defined(SIMDE_ZARCH_ZVECTOR_15_NATIVE) && !defined(SIMDE_ZARCH_ZVECTOR_15_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_ZARCH_CHECK(13) && defined(SIMDE_ARCH_ZARCH_ZVECTOR) + #define SIMDE_ZARCH_ZVECTOR_15_NATIVE + #endif +#endif + +#if !defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE) && !defined(SIMDE_ZARCH_ZVECTOR_14_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_ZARCH_CHECK(12) && defined(SIMDE_ARCH_ZARCH_ZVECTOR) + #define SIMDE_ZARCH_ZVECTOR_14_NATIVE + #endif +#endif + +#if !defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) && !defined(SIMDE_ZARCH_ZVECTOR_13_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if SIMDE_ARCH_ZARCH_CHECK(11) && defined(SIMDE_ARCH_ZARCH_ZVECTOR) + #define SIMDE_ZARCH_ZVECTOR_13_NATIVE + #endif +#endif + +#if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + /* AltiVec conflicts with lots of stuff. The bool keyword conflicts + * with the bool keyword in C++ and the bool macro in C99+ (defined + * in stdbool.h). The vector keyword conflicts with std::vector in + * C++ if you are `using std;`. + * + * Luckily AltiVec allows you to use `__vector`/`__bool`/`__pixel` + * instead, but altivec.h will unconditionally define + * `vector`/`bool`/`pixel` so we need to work around that. + * + * Unfortunately this means that if your code uses AltiVec directly + * it may break. If this is the case you'll want to define + * `SIMDE_POWER_ALTIVEC_NO_UNDEF` before including SIMDe. Or, even + * better, port your code to use the double-underscore versions. */ + #if defined(bool) + #undef bool + #endif + + #if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + #include + + #if !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF) + #if defined(vector) + #undef vector + #endif + #if defined(pixel) + #undef pixel + #endif + #if defined(bool) + #undef bool + #endif + #endif /* !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF) */ + #elif defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + #include + #endif + + /* Use these intsead of vector/pixel/bool in SIMDe. */ + #define SIMDE_POWER_ALTIVEC_VECTOR(T) __vector T + #define SIMDE_POWER_ALTIVEC_PIXEL __pixel + #define SIMDE_POWER_ALTIVEC_BOOL __bool + + /* Re-define bool if we're using stdbool.h */ + #if !defined(__cplusplus) && defined(__bool_true_false_are_defined) && !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF) + #define bool _Bool + #endif +#endif + +#if !defined(SIMDE_MIPS_LOONGSON_MMI_NATIVE) && !defined(SIMDE_MIPS_LOONGSON_MMI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_MIPS_LOONGSON_MMI) + #define SIMDE_MIPS_LOONGSON_MMI_NATIVE 1 + #endif +#endif +#if defined(SIMDE_MIPS_LOONGSON_MMI_NATIVE) + #include +#endif + +#if !defined(SIMDE_MIPS_MSA_NATIVE) && !defined(SIMDE_MIPS_MSA_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_MIPS_MSA) + #define SIMDE_MIPS_MSA_NATIVE 1 + #endif +#endif +#if defined(SIMDE_MIPS_MSA_NATIVE) + #include +#endif + +/* This is used to determine whether or not to fall back on a vector + * function in an earlier ISA extensions, as well as whether + * we expected any attempts at vectorization to be fruitful or if we + * expect to always be running serial code. + * + * Note that, for some architectures (okay, *one* architecture) there + * can be a split where some types are supported for one vector length + * but others only for a shorter length. Therefore, it is possible to + * provide separate values for float/int/double types. */ + +#if !defined(SIMDE_NATURAL_VECTOR_SIZE) + #if defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_NATURAL_VECTOR_SIZE (512) + #elif defined(SIMDE_X86_AVX2_NATIVE) + #define SIMDE_NATURAL_VECTOR_SIZE (256) + #elif defined(SIMDE_X86_AVX_NATIVE) + #define SIMDE_NATURAL_FLOAT_VECTOR_SIZE (256) + #define SIMDE_NATURAL_INT_VECTOR_SIZE (128) + #define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE (128) + #elif \ + defined(SIMDE_X86_SSE2_NATIVE) || \ + defined(SIMDE_ARM_NEON_A32V7_NATIVE) || \ + defined(SIMDE_WASM_SIMD128_NATIVE) || \ + defined(SIMDE_POWER_ALTIVEC_P5_NATIVE) || \ + defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) || \ + defined(SIMDE_MIPS_MSA_NATIVE) + #define SIMDE_NATURAL_VECTOR_SIZE (128) + #elif defined(SIMDE_X86_SSE_NATIVE) + #define SIMDE_NATURAL_FLOAT_VECTOR_SIZE (128) + #define SIMDE_NATURAL_INT_VECTOR_SIZE (64) + #define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE (0) + #elif defined(SIMDE_RISCV_V_NATIVE) && defined(__riscv_v_fixed_vlen) + //FIXME : SIMDE_NATURAL_VECTOR_SIZE == __riscv_v_fixed_vlen + #define SIMDE_NATURAL_VECTOR_SIZE (128) + #endif + + #if !defined(SIMDE_NATURAL_VECTOR_SIZE) + #if defined(SIMDE_NATURAL_FLOAT_VECTOR_SIZE) + #define SIMDE_NATURAL_VECTOR_SIZE SIMDE_NATURAL_FLOAT_VECTOR_SIZE + #elif defined(SIMDE_NATURAL_INT_VECTOR_SIZE) + #define SIMDE_NATURAL_VECTOR_SIZE SIMDE_NATURAL_INT_VECTOR_SIZE + #elif defined(SIMDE_NATURAL_DOUBLE_VECTOR_SIZE) + #define SIMDE_NATURAL_VECTOR_SIZE SIMDE_NATURAL_DOUBLE_VECTOR_SIZE + #else + #define SIMDE_NATURAL_VECTOR_SIZE (0) + #endif + #endif + + #if !defined(SIMDE_NATURAL_FLOAT_VECTOR_SIZE) + #define SIMDE_NATURAL_FLOAT_VECTOR_SIZE SIMDE_NATURAL_VECTOR_SIZE + #endif + #if !defined(SIMDE_NATURAL_INT_VECTOR_SIZE) + #define SIMDE_NATURAL_INT_VECTOR_SIZE SIMDE_NATURAL_VECTOR_SIZE + #endif + #if !defined(SIMDE_NATURAL_DOUBLE_VECTOR_SIZE) + #define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE SIMDE_NATURAL_VECTOR_SIZE + #endif +#endif + +#define SIMDE_NATURAL_VECTOR_SIZE_LE(x) ((SIMDE_NATURAL_VECTOR_SIZE > 0) && (SIMDE_NATURAL_VECTOR_SIZE <= (x))) +#define SIMDE_NATURAL_VECTOR_SIZE_GE(x) ((SIMDE_NATURAL_VECTOR_SIZE > 0) && (SIMDE_NATURAL_VECTOR_SIZE >= (x))) +#define SIMDE_NATURAL_FLOAT_VECTOR_SIZE_LE(x) ((SIMDE_NATURAL_FLOAT_VECTOR_SIZE > 0) && (SIMDE_NATURAL_FLOAT_VECTOR_SIZE <= (x))) +#define SIMDE_NATURAL_FLOAT_VECTOR_SIZE_GE(x) ((SIMDE_NATURAL_FLOAT_VECTOR_SIZE > 0) && (SIMDE_NATURAL_FLOAT_VECTOR_SIZE >= (x))) +#define SIMDE_NATURAL_INT_VECTOR_SIZE_LE(x) ((SIMDE_NATURAL_INT_VECTOR_SIZE > 0) && (SIMDE_NATURAL_INT_VECTOR_SIZE <= (x))) +#define SIMDE_NATURAL_INT_VECTOR_SIZE_GE(x) ((SIMDE_NATURAL_INT_VECTOR_SIZE > 0) && (SIMDE_NATURAL_INT_VECTOR_SIZE >= (x))) +#define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE_LE(x) ((SIMDE_NATURAL_DOUBLE_VECTOR_SIZE > 0) && (SIMDE_NATURAL_DOUBLE_VECTOR_SIZE <= (x))) +#define SIMDE_NATURAL_DOUBLE_VECTOR_SIZE_GE(x) ((SIMDE_NATURAL_DOUBLE_VECTOR_SIZE > 0) && (SIMDE_NATURAL_DOUBLE_VECTOR_SIZE >= (x))) + +/* Native aliases */ +#if defined(SIMDE_ENABLE_NATIVE_ALIASES) + #if !defined(SIMDE_X86_MMX_NATIVE) + #define SIMDE_X86_MMX_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE_NATIVE) + #define SIMDE_X86_SSE_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE2_NATIVE) + #define SIMDE_X86_SSE2_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE3_NATIVE) + #define SIMDE_X86_SSE3_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSSE3_NATIVE) + #define SIMDE_X86_SSSE3_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE4_1_NATIVE) + #define SIMDE_X86_SSE4_1_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SSE4_2_NATIVE) + #define SIMDE_X86_SSE4_2_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX_NATIVE) + #define SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX2_NATIVE) + #define SIMDE_X86_AVX2_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_FMA_NATIVE) + #define SIMDE_X86_FMA_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512F_NATIVE) + #define SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VL_NATIVE) + #define SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VBMI_NATIVE) + #define SIMDE_X86_AVX512VBMI_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VBMI2_NATIVE) + #define SIMDE_X86_AVX512VBMI2_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512BW_NATIVE) + #define SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VNNI_NATIVE) + #define SIMDE_X86_AVX512VNNI_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX5124VNNIW_NATIVE) + #define SIMDE_X86_AVX5124VNNIW_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512BF16_NATIVE) + #define SIMDE_X86_AVX512BF16_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512BITALG_NATIVE) + #define SIMDE_X86_AVX512BITALG_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VPOPCNTDQ_NATIVE) + #define SIMDE_X86_AVX512VPOPCNTDQ_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512VP2INTERSECT_NATIVE) + #define SIMDE_X86_AVX512VP2INTERSECT_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512DQ_NATIVE) + #define SIMDE_X86_AVX512DQ_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512CD_NATIVE) + #define SIMDE_X86_AVX512CD_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AVX512FP16_NATIVE) + #define SIMDE_X86_AVX512FP16_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_GFNI_NATIVE) + #define SIMDE_X86_GFNI_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_PCLMUL_NATIVE) + #define SIMDE_X86_PCLMUL_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_VPCLMULQDQ_NATIVE) + #define SIMDE_X86_VPCLMULQDQ_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_F16C_NATIVE) + #define SIMDE_X86_F16C_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_AES_NATIVE) + #define SIMDE_X86_AES_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_X86_SVML_NATIVE) + #define SIMDE_X86_SVML_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_ARM_NEON_A32V8_NATIVE) + #define SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES + #endif + #if !defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #define SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_ARM_SVE_NATIVE) + #define SIMDE_ARM_SVE_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_RISCV_V_NATIVE) + #define SIMDE_RISCV_V_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_MIPS_MSA_NATIVE) + #define SIMDE_MIPS_MSA_ENABLE_NATIVE_ALIASES + #endif + + #if !defined(SIMDE_WASM_SIMD128_NATIVE) + #define SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES + #endif +#endif + +/* Are floating point values stored using IEEE 754? Knowing + * this at during preprocessing is a bit tricky, mostly because what + * we're curious about is how values are stored and not whether the + * implementation is fully conformant in terms of rounding, NaN + * handling, etc. + * + * For example, if you use -ffast-math or -Ofast on + * GCC or clang IEEE 754 isn't strictly followed, therefore IEE 754 + * support is not advertised (by defining __STDC_IEC_559__). + * + * However, what we care about is whether it is safe to assume that + * floating point values are stored in IEEE 754 format, in which case + * we can provide faster implementations of some functions. + * + * Luckily every vaugely modern architecture I'm aware of uses IEEE 754- + * so we just assume IEEE 754 for now. There is a test which verifies + * this, if that test fails sowewhere please let us know and we'll add + * an exception for that platform. Meanwhile, you can define + * SIMDE_NO_IEEE754_STORAGE. */ +#if !defined(SIMDE_IEEE754_STORAGE) && !defined(SIMDE_NO_IEE754_STORAGE) + #define SIMDE_IEEE754_STORAGE +#endif + +#if defined(SIMDE_ARCH_ARM_NEON_FP16) + #define SIMDE_ARM_NEON_FP16 +#endif + +#if defined(SIMDE_ARCH_ARM_NEON_BF16) + #define SIMDE_ARM_NEON_BF16 +#endif + +#if !defined(SIMDE_LOONGARCH_LASX_NATIVE) && !defined(SIMDE_LOONGARCH_LASX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_LOONGARCH_LASX) + #define SIMDE_LOONGARCH_LASX_NATIVE + #endif +#endif + +#if !defined(SIMDE_LOONGARCH_LSX_NATIVE) && !defined(SIMDE_LOONGARCH_LSX_NO_NATIVE) && !defined(SIMDE_NO_NATIVE) + #if defined(SIMDE_ARCH_LOONGARCH_LSX) + #define SIMDE_LOONGARCH_LSX_NATIVE + #endif +#endif + +#if defined(SIMDE_LOONGARCH_LASX_NATIVE) + #include +#endif +#if defined(SIMDE_LOONGARCH_LSX_NATIVE) + #include +#endif + +#endif /* !defined(SIMDE_FEATURES_H) */ +/* :: End simde/simde-features.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/simde-math.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2017-2020 Evan Nemerson + * 2023 Yi-Yen Chung (Copyright owned by Andes Technology) + */ + +/* Attempt to find math functions. Functions may be in , + * , compiler built-ins/intrinsics, or platform/architecture + * specific headers. In some cases, especially those not built in to + * libm, we may need to define our own implementations. */ + +#if !defined(SIMDE_MATH_H) +#define SIMDE_MATH_H 1 + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ + +#include +#if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #include +#endif + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DISABLE_UNWANTED_DIAGNOSTICS + +/* SLEEF support + * https://sleef.org/ + * + * If you include prior to including SIMDe, SIMDe will use + * SLEEF. You can also define SIMDE_MATH_SLEEF_ENABLE prior to + * including SIMDe to force the issue. + * + * Note that SLEEF does requires linking to libsleef. + * + * By default, SIMDe will use the 1 ULP functions, but if you use + * SIMDE_ACCURACY_PREFERENCE of 0 we will use up to 4 ULP. This is + * only the case for the simde_math_* functions; for code in other + * SIMDe headers which calls SLEEF directly we may use functions with + * greater error if the API we're implementing is less precise (for + * example, SVML guarantees 4 ULP, so we will generally use the 3.5 + * ULP functions from SLEEF). */ +#if !defined(SIMDE_MATH_SLEEF_DISABLE) + #if defined(__SLEEF_H__) + #define SIMDE_MATH_SLEEF_ENABLE + #endif +#endif + +#if defined(SIMDE_MATH_SLEEF_ENABLE) && !defined(__SLEEF_H__) + HEDLEY_DIAGNOSTIC_PUSH + SIMDE_DIAGNOSTIC_DISABLE_IGNORED_QUALIFIERS_ + #include + HEDLEY_DIAGNOSTIC_POP +#endif + +#if defined(SIMDE_MATH_SLEEF_ENABLE) && defined(__SLEEF_H__) + #if defined(SLEEF_VERSION_MAJOR) + #define SIMDE_MATH_SLEEF_VERSION_CHECK(major, minor, patch) (HEDLEY_VERSION_ENCODE(SLEEF_VERSION_MAJOR, SLEEF_VERSION_MINOR, SLEEF_VERSION_PATCHLEVEL) >= HEDLEY_VERSION_ENCODE(major, minor, patch)) + #else + #define SIMDE_MATH_SLEEF_VERSION_CHECK(major, minor, patch) (HEDLEY_VERSION_ENCODE(3,0,0) >= HEDLEY_VERSION_ENCODE(major, minor, patch)) + #endif +#else + #define SIMDE_MATH_SLEEF_VERSION_CHECK(major, minor, patch) (0) +#endif + +#if defined(__has_builtin) + #define SIMDE_MATH_BUILTIN_LIBM(func) __has_builtin(__builtin_##func) +#elif \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_GCC_VERSION_CHECK(4,4,0) + #define SIMDE_MATH_BUILTIN_LIBM(func) (1) +#else + #define SIMDE_MATH_BUILTIN_LIBM(func) (0) +#endif + +#if defined(HUGE_VAL) + /* Looks like or has already been included. */ + + /* The math.h from libc++ (yes, the C header from the C++ standard + * library) will define an isnan function, but not an isnan macro + * like the C standard requires. So we detect the header guards + * macro libc++ uses. */ + #if defined(isnan) || (defined(_LIBCPP_MATH_H) && !defined(_LIBCPP_CMATH)) + #define SIMDE_MATH_HAVE_MATH_H + #elif defined(__cplusplus) + #define SIMDE_MATH_HAVE_CMATH + #endif +#elif defined(__has_include) + #if defined(__cplusplus) && (__cplusplus >= 201103L) && __has_include() + #define SIMDE_MATH_HAVE_CMATH + #include + #elif __has_include() + #define SIMDE_MATH_HAVE_MATH_H + #include + #elif !defined(SIMDE_MATH_NO_LIBM) + #define SIMDE_MATH_NO_LIBM + #endif +#elif !defined(SIMDE_MATH_NO_LIBM) + #if defined(__cplusplus) && (__cplusplus >= 201103L) + #define SIMDE_MATH_HAVE_CMATH + HEDLEY_DIAGNOSTIC_PUSH + #if defined(HEDLEY_MSVC_VERSION) + /* VS 14 emits this diagnostic about noexcept being used on a + * function, which we can't do anything about. */ + #pragma warning(disable:4996) + #endif + #include + HEDLEY_DIAGNOSTIC_POP + #else + #define SIMDE_MATH_HAVE_MATH_H + #include + #endif +#endif + +#if !defined(SIMDE_MATH_INFINITY) + #if \ + HEDLEY_HAS_BUILTIN(__builtin_inf) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) + #define SIMDE_MATH_INFINITY (__builtin_inf()) + #elif defined(INFINITY) + #define SIMDE_MATH_INFINITY INFINITY + #endif +#endif + +#if !defined(SIMDE_INFINITYF) + #if \ + HEDLEY_HAS_BUILTIN(__builtin_inff) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) + #define SIMDE_MATH_INFINITYF (__builtin_inff()) + #elif defined(INFINITYF) + #define SIMDE_MATH_INFINITYF INFINITYF + #elif defined(SIMDE_MATH_INFINITY) + #define SIMDE_MATH_INFINITYF HEDLEY_STATIC_CAST(float, SIMDE_MATH_INFINITY) + #endif +#endif + +#if !defined(SIMDE_MATH_NAN) + #if \ + HEDLEY_HAS_BUILTIN(__builtin_nan) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) + #define SIMDE_MATH_NAN (__builtin_nan("")) + #elif defined(NAN) + #define SIMDE_MATH_NAN NAN + #endif +#endif + +#if !defined(SIMDE_NANF) + #if \ + HEDLEY_HAS_BUILTIN(__builtin_nanf) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) + #define SIMDE_MATH_NANF (__builtin_nanf("")) + #elif defined(NANF) + #define SIMDE_MATH_NANF NANF + #elif defined(SIMDE_MATH_NAN) + #define SIMDE_MATH_NANF HEDLEY_STATIC_CAST(float, SIMDE_MATH_NAN) + #endif +#endif + +#if !defined(SIMDE_MATH_PI) + #if defined(M_PI) + #define SIMDE_MATH_PI M_PI + #else + #define SIMDE_MATH_PI 3.14159265358979323846 + #endif +#endif + +#if !defined(SIMDE_MATH_PIF) + #if defined(M_PI) + #define SIMDE_MATH_PIF HEDLEY_STATIC_CAST(float, M_PI) + #else + #define SIMDE_MATH_PIF 3.14159265358979323846f + #endif +#endif + +#if !defined(SIMDE_MATH_PI_OVER_180) + #define SIMDE_MATH_PI_OVER_180 0.0174532925199432957692369076848861271344287188854172545609719144 +#endif + +#if !defined(SIMDE_MATH_PI_OVER_180F) + #define SIMDE_MATH_PI_OVER_180F 0.0174532925199432957692369076848861271344287188854172545609719144f +#endif + +#if !defined(SIMDE_MATH_180_OVER_PI) + #define SIMDE_MATH_180_OVER_PI 57.295779513082320876798154814105170332405472466564321549160243861 +#endif + +#if !defined(SIMDE_MATH_180_OVER_PIF) + #define SIMDE_MATH_180_OVER_PIF 57.295779513082320876798154814105170332405472466564321549160243861f +#endif + +#if !defined(SIMDE_MATH_FLT_MIN) + #if defined(__FLT_MIN__) + #define SIMDE_MATH_FLT_MIN __FLT_MIN__ + #else + #if !defined(FLT_MIN) + #if defined(__cplusplus) + #include + #else + #include + #endif + #endif + #define SIMDE_MATH_FLT_MIN FLT_MIN + #endif +#endif + +#if !defined(SIMDE_MATH_FLT_MAX) + #if defined(__FLT_MAX__) + #define SIMDE_MATH_FLT_MAX __FLT_MAX__ + #else + #if !defined(FLT_MAX) + #if defined(__cplusplus) + #include + #else + #include + #endif + #endif + #define SIMDE_MATH_FLT_MAX FLT_MAX + #endif +#endif + +#if !defined(SIMDE_MATH_DBL_MIN) + #if defined(__DBL_MIN__) + #define SIMDE_MATH_DBL_MIN __DBL_MIN__ + #else + #if !defined(DBL_MIN) + #if defined(__cplusplus) + #include + #else + #include + #endif + #endif + #define SIMDE_MATH_DBL_MIN DBL_MIN + #endif +#endif + +#if !defined(SIMDE_MATH_DBL_MAX) + #if defined(__DBL_MAX__) + #define SIMDE_MATH_DBL_MAX __DBL_MAX__ + #else + #if !defined(DBL_MAX) + #if defined(__cplusplus) + #include + #else + #include + #endif + #endif + #define SIMDE_MATH_DBL_MAX DBL_MAX + #endif +#endif + +/*** Classification macros from C99 ***/ + +#if !defined(simde_math_isinf) + #if SIMDE_MATH_BUILTIN_LIBM(isinf) + #define simde_math_isinf(v) __builtin_isinf(v) + #elif defined(isinf) || defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_isinf(v) isinf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isinf(v) std::isinf(v) + #endif +#endif + +#if !defined(simde_math_isinff) + #if HEDLEY_HAS_BUILTIN(__builtin_isinff) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define simde_math_isinff(v) __builtin_isinff(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isinff(v) std::isinf(v) + #elif defined(simde_math_isinf) + #define simde_math_isinff(v) simde_math_isinf(HEDLEY_STATIC_CAST(double, v)) + #endif +#endif + +#if !defined(simde_math_isnan) + #if SIMDE_MATH_BUILTIN_LIBM(isnan) + #define simde_math_isnan(v) __builtin_isnan(v) + #elif defined(isnan) || defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_isnan(v) isnan(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isnan(v) std::isnan(v) + #endif +#endif + +#if !defined(simde_math_isnanf) + #if HEDLEY_HAS_BUILTIN(__builtin_isnanf) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) + /* XL C/C++ has __builtin_isnan but not __builtin_isnanf */ + #define simde_math_isnanf(v) __builtin_isnanf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isnanf(v) std::isnan(v) + #elif defined(simde_math_isnan) + #define simde_math_isnanf(v) simde_math_isnan(HEDLEY_STATIC_CAST(double, v)) + #endif +#endif + +#if !defined(simde_math_isnormal) + #if SIMDE_MATH_BUILTIN_LIBM(isnormal) + #define simde_math_isnormal(v) __builtin_isnormal(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_isnormal(v) isnormal(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isnormal(v) std::isnormal(v) + #endif +#endif + +#if !defined(simde_math_isnormalf) + #if HEDLEY_HAS_BUILTIN(__builtin_isnormalf) + #define simde_math_isnormalf(v) __builtin_isnormalf(v) + #elif SIMDE_MATH_BUILTIN_LIBM(isnormal) + #define simde_math_isnormalf(v) __builtin_isnormal(v) + #elif defined(isnormalf) + #define simde_math_isnormalf(v) isnormalf(v) + #elif defined(isnormal) || defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_isnormalf(v) isnormal(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_isnormalf(v) std::isnormal(v) + #elif defined(simde_math_isnormal) + #define simde_math_isnormalf(v) simde_math_isnormal(v) + #endif +#endif + +#if !defined(simde_math_issubnormalf) + #if SIMDE_MATH_BUILTIN_LIBM(fpclassify) + #define simde_math_issubnormalf(v) __builtin_fpclassify(0, 0, 0, 1, 0, v) + #elif defined(fpclassify) + #define simde_math_issubnormalf(v) (fpclassify(v) == FP_SUBNORMAL) + #elif defined(SIMDE_IEEE754_STORAGE) + #define simde_math_issubnormalf(v) (((simde_float32_as_uint32(v) & UINT32_C(0x7F800000)) == UINT32_C(0)) && ((simde_float32_as_uint32(v) & UINT32_C(0x007FFFFF)) != UINT32_C(0))) + #endif +#endif + +#if !defined(simde_math_issubnormal) + #if SIMDE_MATH_BUILTIN_LIBM(fpclassify) + #define simde_math_issubnormal(v) __builtin_fpclassify(0, 0, 0, 1, 0, v) + #elif defined(fpclassify) + #define simde_math_issubnormal(v) (fpclassify(v) == FP_SUBNORMAL) + #elif defined(SIMDE_IEEE754_STORAGE) + #define simde_math_issubnormal(v) (((simde_float64_as_uint64(v) & UINT64_C(0x7FF0000000000000)) == UINT64_C(0)) && ((simde_float64_as_uint64(v) & UINT64_C(0x00FFFFFFFFFFFFF)) != UINT64_C(0))) + #endif +#endif + +#if defined(FP_NAN) + #define SIMDE_MATH_FP_NAN FP_NAN +#else + #define SIMDE_MATH_FP_NAN 0 +#endif +#if defined(FP_INFINITE) + #define SIMDE_MATH_FP_INFINITE FP_INFINITE +#else + #define SIMDE_MATH_FP_INFINITE 1 +#endif +#if defined(FP_ZERO) + #define SIMDE_MATH_FP_ZERO FP_ZERO +#else + #define SIMDE_MATH_FP_ZERO 2 +#endif +#if defined(FP_SUBNORMAL) + #define SIMDE_MATH_FP_SUBNORMAL FP_SUBNORMAL +#else + #define SIMDE_MATH_FP_SUBNORMAL 3 +#endif +#if defined(FP_NORMAL) + #define SIMDE_MATH_FP_NORMAL FP_NORMAL +#else + #define SIMDE_MATH_FP_NORMAL 4 +#endif + +static HEDLEY_INLINE +int +simde_math_fpclassifyf(float v) { + #if SIMDE_MATH_BUILTIN_LIBM(fpclassify) + return __builtin_fpclassify(SIMDE_MATH_FP_NAN, SIMDE_MATH_FP_INFINITE, SIMDE_MATH_FP_NORMAL, SIMDE_MATH_FP_SUBNORMAL, SIMDE_MATH_FP_ZERO, v); + #elif defined(fpclassify) + return fpclassify(v); + #else + return + simde_math_isnormalf(v) ? SIMDE_MATH_FP_NORMAL : + (v == 0.0f) ? SIMDE_MATH_FP_ZERO : + simde_math_isnanf(v) ? SIMDE_MATH_FP_NAN : + simde_math_isinff(v) ? SIMDE_MATH_FP_INFINITE : + SIMDE_MATH_FP_SUBNORMAL; + #endif +} + +static HEDLEY_INLINE +int +simde_math_fpclassify(double v) { + #if SIMDE_MATH_BUILTIN_LIBM(fpclassify) + return __builtin_fpclassify(SIMDE_MATH_FP_NAN, SIMDE_MATH_FP_INFINITE, SIMDE_MATH_FP_NORMAL, SIMDE_MATH_FP_SUBNORMAL, SIMDE_MATH_FP_ZERO, v); + #elif defined(fpclassify) + return fpclassify(v); + #else + return + simde_math_isnormal(v) ? SIMDE_MATH_FP_NORMAL : + (v == 0.0) ? SIMDE_MATH_FP_ZERO : + simde_math_isnan(v) ? SIMDE_MATH_FP_NAN : + simde_math_isinf(v) ? SIMDE_MATH_FP_INFINITE : + SIMDE_MATH_FP_SUBNORMAL; + #endif +} + +#define SIMDE_MATH_FP_QNAN 0x01 +#define SIMDE_MATH_FP_PZERO 0x02 +#define SIMDE_MATH_FP_NZERO 0x04 +#define SIMDE_MATH_FP_PINF 0x08 +#define SIMDE_MATH_FP_NINF 0x10 +#define SIMDE_MATH_FP_DENORMAL 0x20 +#define SIMDE_MATH_FP_NEGATIVE 0x40 +#define SIMDE_MATH_FP_SNAN 0x80 + +static HEDLEY_INLINE +uint8_t +simde_math_fpclassf(float v, const int imm8) { + union { + float f; + uint32_t u; + } fu; + fu.f = v; + uint32_t bits = fu.u; + uint8_t NegNum = (bits >> 31) & 1; + uint32_t const ExpMask = 0x3F800000; // [30:23] + uint32_t const MantMask = 0x007FFFFF; // [22:0] + uint8_t ExpAllOnes = ((bits & ExpMask) == ExpMask); + uint8_t ExpAllZeros = ((bits & ExpMask) == 0); + uint8_t MantAllZeros = ((bits & MantMask) == 0); + uint8_t ZeroNumber = ExpAllZeros & MantAllZeros; + uint8_t SignalingBit = (bits >> 22) & 1; + + uint8_t result = 0; + uint8_t qNaN_res = ExpAllOnes & (!MantAllZeros) & SignalingBit; + uint8_t Pzero_res = (!NegNum) & ExpAllZeros & MantAllZeros; + uint8_t Nzero_res = NegNum & ExpAllZeros & MantAllZeros; + uint8_t Pinf_res = (!NegNum) & ExpAllOnes & MantAllZeros; + uint8_t Ninf_res = NegNum & ExpAllOnes & MantAllZeros; + uint8_t Denorm_res = ExpAllZeros & (!MantAllZeros); + uint8_t FinNeg_res = NegNum & (!ExpAllOnes) & (!ZeroNumber); + uint8_t sNaN_res = ExpAllOnes & (!MantAllZeros) & (!SignalingBit); + result = (((imm8 >> 0) & qNaN_res) | \ + ((imm8 >> 1) & Pzero_res) | \ + ((imm8 >> 2) & Nzero_res) | \ + ((imm8 >> 3) & Pinf_res) | \ + ((imm8 >> 4) & Ninf_res) | \ + ((imm8 >> 5) & Denorm_res) | \ + ((imm8 >> 6) & FinNeg_res) | \ + ((imm8 >> 7) & sNaN_res)); + return result; +} + +static HEDLEY_INLINE +uint8_t +simde_math_fpclass(double v, const int imm8) { + union { + double d; + uint64_t u; + } du; + du.d = v; + uint64_t bits = du.u; + uint8_t NegNum = (bits >> 63) & 1; + uint64_t const ExpMask = 0x3FF0000000000000; // [62:52] + uint64_t const MantMask = 0x000FFFFFFFFFFFFF; // [51:0] + uint8_t ExpAllOnes = ((bits & ExpMask) == ExpMask); + uint8_t ExpAllZeros = ((bits & ExpMask) == 0); + uint8_t MantAllZeros = ((bits & MantMask) == 0); + uint8_t ZeroNumber = ExpAllZeros & MantAllZeros; + uint8_t SignalingBit = (bits >> 51) & 1; + + uint8_t result = 0; + uint8_t qNaN_res = ExpAllOnes & (!MantAllZeros) & SignalingBit; + uint8_t Pzero_res = (!NegNum) & ExpAllZeros & MantAllZeros; + uint8_t Nzero_res = NegNum & ExpAllZeros & MantAllZeros; + uint8_t Pinf_res = (!NegNum) & ExpAllOnes & MantAllZeros; + uint8_t Ninf_res = NegNum & ExpAllOnes & MantAllZeros; + uint8_t Denorm_res = ExpAllZeros & (!MantAllZeros); + uint8_t FinNeg_res = NegNum & (!ExpAllOnes) & (!ZeroNumber); + uint8_t sNaN_res = ExpAllOnes & (!MantAllZeros) & (!SignalingBit); + result = (((imm8 >> 0) & qNaN_res) | \ + ((imm8 >> 1) & Pzero_res) | \ + ((imm8 >> 2) & Nzero_res) | \ + ((imm8 >> 3) & Pinf_res) | \ + ((imm8 >> 4) & Ninf_res) | \ + ((imm8 >> 5) & Denorm_res) | \ + ((imm8 >> 6) & FinNeg_res) | \ + ((imm8 >> 7) & sNaN_res)); + return result; +} + +/*** Manipulation functions ***/ + +#if !defined(simde_math_nextafter) + #if \ + (HEDLEY_HAS_BUILTIN(__builtin_nextafter) && !defined(HEDLEY_IBM_VERSION)) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define simde_math_nextafter(x, y) __builtin_nextafter(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_nextafter(x, y) std::nextafter(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_nextafter(x, y) nextafter(x, y) + #endif +#endif + +#if !defined(simde_math_nextafterf) + #if \ + (HEDLEY_HAS_BUILTIN(__builtin_nextafterf) && !defined(HEDLEY_IBM_VERSION)) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define simde_math_nextafterf(x, y) __builtin_nextafterf(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_nextafterf(x, y) std::nextafter(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_nextafterf(x, y) nextafterf(x, y) + #endif +#endif + +/*** Functions from C99 ***/ + +#if !defined(simde_math_abs) + #if SIMDE_MATH_BUILTIN_LIBM(abs) + #define simde_math_abs(v) __builtin_abs(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_abs(v) std::abs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_abs(v) abs(v) + #endif +#endif + +#if !defined(simde_math_labs) + #if SIMDE_MATH_BUILTIN_LIBM(labs) + #define simde_math_labs(v) __builtin_labs(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_labs(v) std::labs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_labs(v) labs(v) + #endif +#endif + +#if !defined(simde_math_llabs) + #if SIMDE_MATH_BUILTIN_LIBM(llabs) + #define simde_math_llabs(v) __builtin_llabs(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_llabs(v) std::llabs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_llabs(v) llabs(v) + #endif +#endif + +#if !defined(simde_math_fabsf) + #if SIMDE_MATH_BUILTIN_LIBM(fabsf) + #define simde_math_fabsf(v) __builtin_fabsf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fabsf(v) std::abs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fabsf(v) fabsf(v) + #endif +#endif + +#if !defined(simde_math_acos) + #if SIMDE_MATH_BUILTIN_LIBM(acos) + #define simde_math_acos(v) __builtin_acos(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_acos(v) std::acos(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_acos(v) acos(v) + #endif +#endif + +#if !defined(simde_math_acosf) + #if SIMDE_MATH_BUILTIN_LIBM(acosf) + #define simde_math_acosf(v) __builtin_acosf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_acosf(v) std::acos(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_acosf(v) acosf(v) + #endif +#endif + +#if !defined(simde_math_acosh) + #if SIMDE_MATH_BUILTIN_LIBM(acosh) + #define simde_math_acosh(v) __builtin_acosh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_acosh(v) std::acosh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_acosh(v) acosh(v) + #endif +#endif + +#if !defined(simde_math_acoshf) + #if SIMDE_MATH_BUILTIN_LIBM(acoshf) + #define simde_math_acoshf(v) __builtin_acoshf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_acoshf(v) std::acosh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_acoshf(v) acoshf(v) + #endif +#endif + +#if !defined(simde_math_asin) + #if SIMDE_MATH_BUILTIN_LIBM(asin) + #define simde_math_asin(v) __builtin_asin(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_asin(v) std::asin(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_asin(v) asin(v) + #endif +#endif + +#if !defined(simde_math_asinf) + #if SIMDE_MATH_BUILTIN_LIBM(asinf) + #define simde_math_asinf(v) __builtin_asinf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_asinf(v) std::asin(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_asinf(v) asinf(v) + #endif +#endif + +#if !defined(simde_math_asinh) + #if SIMDE_MATH_BUILTIN_LIBM(asinh) + #define simde_math_asinh(v) __builtin_asinh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_asinh(v) std::asinh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_asinh(v) asinh(v) + #endif +#endif + +#if !defined(simde_math_asinhf) + #if SIMDE_MATH_BUILTIN_LIBM(asinhf) + #define simde_math_asinhf(v) __builtin_asinhf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_asinhf(v) std::asinh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_asinhf(v) asinhf(v) + #endif +#endif + +#if !defined(simde_math_atan) + #if SIMDE_MATH_BUILTIN_LIBM(atan) + #define simde_math_atan(v) __builtin_atan(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atan(v) std::atan(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atan(v) atan(v) + #endif +#endif + +#if !defined(simde_math_atan2) + #if SIMDE_MATH_BUILTIN_LIBM(atan2) + #define simde_math_atan2(y, x) __builtin_atan2(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atan2(y, x) std::atan2(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atan2(y, x) atan2(y, x) + #endif +#endif + +#if !defined(simde_math_atan2f) + #if SIMDE_MATH_BUILTIN_LIBM(atan2f) + #define simde_math_atan2f(y, x) __builtin_atan2f(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atan2f(y, x) std::atan2(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atan2f(y, x) atan2f(y, x) + #endif +#endif + +#if !defined(simde_math_atanf) + #if SIMDE_MATH_BUILTIN_LIBM(atanf) + #define simde_math_atanf(v) __builtin_atanf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atanf(v) std::atan(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atanf(v) atanf(v) + #endif +#endif + +#if !defined(simde_math_atanh) + #if SIMDE_MATH_BUILTIN_LIBM(atanh) + #define simde_math_atanh(v) __builtin_atanh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atanh(v) std::atanh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atanh(v) atanh(v) + #endif +#endif + +#if !defined(simde_math_atanhf) + #if SIMDE_MATH_BUILTIN_LIBM(atanhf) + #define simde_math_atanhf(v) __builtin_atanhf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_atanhf(v) std::atanh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_atanhf(v) atanhf(v) + #endif +#endif + +#if !defined(simde_math_cbrt) + #if SIMDE_MATH_BUILTIN_LIBM(cbrt) + #define simde_math_cbrt(v) __builtin_cbrt(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cbrt(v) std::cbrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cbrt(v) cbrt(v) + #endif +#endif + +#if !defined(simde_math_cbrtf) + #if SIMDE_MATH_BUILTIN_LIBM(cbrtf) + #define simde_math_cbrtf(v) __builtin_cbrtf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cbrtf(v) std::cbrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cbrtf(v) cbrtf(v) + #endif +#endif + +#if !defined(simde_math_ceil) + #if SIMDE_MATH_BUILTIN_LIBM(ceil) + #define simde_math_ceil(v) __builtin_ceil(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_ceil(v) std::ceil(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_ceil(v) ceil(v) + #endif +#endif + +#if !defined(simde_math_ceilf) + #if SIMDE_MATH_BUILTIN_LIBM(ceilf) + #define simde_math_ceilf(v) __builtin_ceilf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_ceilf(v) std::ceil(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_ceilf(v) ceilf(v) + #endif +#endif + +#if !defined(simde_math_copysign) + #if SIMDE_MATH_BUILTIN_LIBM(copysign) + #define simde_math_copysign(x, y) __builtin_copysign(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_copysign(x, y) std::copysign(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_copysign(x, y) copysign(x, y) + #endif +#endif + +#if !defined(simde_math_copysignf) + #if SIMDE_MATH_BUILTIN_LIBM(copysignf) + #define simde_math_copysignf(x, y) __builtin_copysignf(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_copysignf(x, y) std::copysignf(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_copysignf(x, y) copysignf(x, y) + #endif +#endif + +#if !defined(simde_math_signbit) + #if SIMDE_MATH_BUILTIN_LIBM(signbit) + #if (!defined(__clang__) || SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0)) + #define simde_math_signbit(x) __builtin_signbit(x) + #else + #define simde_math_signbit(x) __builtin_signbit(HEDLEY_STATIC_CAST(double, (x))) + #endif + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_signbit(x) std::signbit(x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_signbit(x) signbit(x) + #endif +#endif + +#if !defined(simde_math_cos) + #if SIMDE_MATH_BUILTIN_LIBM(cos) + #define simde_math_cos(v) __builtin_cos(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cos(v) std::cos(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cos(v) cos(v) + #endif +#endif + +#if !defined(simde_math_cosf) + #if defined(SIMDE_MATH_SLEEF_ENABLE) + #if SIMDE_ACCURACY_PREFERENCE < 1 + #define simde_math_cosf(v) Sleef_cosf_u35(v) + #else + #define simde_math_cosf(v) Sleef_cosf_u10(v) + #endif + #elif SIMDE_MATH_BUILTIN_LIBM(cosf) + #define simde_math_cosf(v) __builtin_cosf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cosf(v) std::cos(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cosf(v) cosf(v) + #endif +#endif + +#if !defined(simde_math_cosh) + #if SIMDE_MATH_BUILTIN_LIBM(cosh) + #define simde_math_cosh(v) __builtin_cosh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_cosh(v) std::cosh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_cosh(v) cosh(v) + #endif +#endif + +#if !defined(simde_math_coshf) + #if SIMDE_MATH_BUILTIN_LIBM(coshf) + #define simde_math_coshf(v) __builtin_coshf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_coshf(v) std::cosh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_coshf(v) coshf(v) + #endif +#endif + +#if !defined(simde_math_erf) + #if SIMDE_MATH_BUILTIN_LIBM(erf) + #define simde_math_erf(v) __builtin_erf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_erf(v) std::erf(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_erf(v) erf(v) + #endif +#endif + +#if !defined(simde_math_erff) + #if SIMDE_MATH_BUILTIN_LIBM(erff) + #define simde_math_erff(v) __builtin_erff(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_erff(v) std::erf(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_erff(v) erff(v) + #endif +#endif + +#if !defined(simde_math_erfc) + #if SIMDE_MATH_BUILTIN_LIBM(erfc) + #define simde_math_erfc(v) __builtin_erfc(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_erfc(v) std::erfc(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_erfc(v) erfc(v) + #endif +#endif + +#if !defined(simde_math_erfcf) + #if SIMDE_MATH_BUILTIN_LIBM(erfcf) + #define simde_math_erfcf(v) __builtin_erfcf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_erfcf(v) std::erfc(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_erfcf(v) erfcf(v) + #endif +#endif + +#if !defined(simde_math_exp) + #if SIMDE_MATH_BUILTIN_LIBM(exp) + #define simde_math_exp(v) __builtin_exp(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_exp(v) std::exp(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_exp(v) exp(v) + #endif +#endif + +#if !defined(simde_math_expf) + #if SIMDE_MATH_BUILTIN_LIBM(expf) + #define simde_math_expf(v) __builtin_expf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_expf(v) std::exp(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_expf(v) expf(v) + #endif +#endif + +#if !defined(simde_math_expm1) + #if SIMDE_MATH_BUILTIN_LIBM(expm1) + #define simde_math_expm1(v) __builtin_expm1(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_expm1(v) std::expm1(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_expm1(v) expm1(v) + #endif +#endif + +#if !defined(simde_math_expm1f) + #if SIMDE_MATH_BUILTIN_LIBM(expm1f) + #define simde_math_expm1f(v) __builtin_expm1f(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_expm1f(v) std::expm1(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_expm1f(v) expm1f(v) + #endif +#endif + +#if !defined(simde_math_exp2) + #if SIMDE_MATH_BUILTIN_LIBM(exp2) + #define simde_math_exp2(v) __builtin_exp2(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_exp2(v) std::exp2(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_exp2(v) exp2(v) + #endif +#endif + +#if !defined(simde_math_exp2f) + #if SIMDE_MATH_BUILTIN_LIBM(exp2f) + #define simde_math_exp2f(v) __builtin_exp2f(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_exp2f(v) std::exp2(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_exp2f(v) exp2f(v) + #endif +#endif + +#if HEDLEY_HAS_BUILTIN(__builtin_exp10) || HEDLEY_GCC_VERSION_CHECK(3,4,0) + # define simde_math_exp10(v) __builtin_exp10(v) +#else +# define simde_math_exp10(v) pow(10.0, (v)) +#endif + +#if HEDLEY_HAS_BUILTIN(__builtin_exp10f) || HEDLEY_GCC_VERSION_CHECK(3,4,0) + # define simde_math_exp10f(v) __builtin_exp10f(v) +#else +# define simde_math_exp10f(v) powf(10.0f, (v)) +#endif + +#if !defined(simde_math_fabs) + #if SIMDE_MATH_BUILTIN_LIBM(fabs) + #define simde_math_fabs(v) __builtin_fabs(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fabs(v) std::fabs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fabs(v) fabs(v) + #endif +#endif + +#if !defined(simde_math_fabsf) + #if SIMDE_MATH_BUILTIN_LIBM(fabsf) + #define simde_math_fabsf(v) __builtin_fabsf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fabsf(v) std::fabs(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fabsf(v) fabsf(v) + #endif +#endif + +#if !defined(simde_math_floor) + #if SIMDE_MATH_BUILTIN_LIBM(floor) + #define simde_math_floor(v) __builtin_floor(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_floor(v) std::floor(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_floor(v) floor(v) + #endif +#endif + +#if !defined(simde_math_floorf) + #if SIMDE_MATH_BUILTIN_LIBM(floorf) + #define simde_math_floorf(v) __builtin_floorf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_floorf(v) std::floor(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_floorf(v) floorf(v) + #endif +#endif + +#if !defined(simde_math_fma) + #if SIMDE_MATH_BUILTIN_LIBM(fma) + #define simde_math_fma(x, y, z) __builtin_fma(x, y, z) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fma(x, y, z) std::fma(x, y, z) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fma(x, y, z) fma(x, y, z) + #endif +#endif + +#if !defined(simde_math_fmaf) + #if SIMDE_MATH_BUILTIN_LIBM(fmaf) + #define simde_math_fmaf(x, y, z) __builtin_fmaf(x, y, z) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fmaf(x, y, z) std::fma(x, y, z) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fmaf(x, y, z) fmaf(x, y, z) + #endif +#endif + +#if !defined(simde_math_fmax) + #if SIMDE_MATH_BUILTIN_LIBM(fmax) + #define simde_math_fmax(x, y) __builtin_fmax(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fmax(x, y) std::fmax(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fmax(x, y) fmax(x, y) + #endif +#endif + +#if !defined(simde_math_fmaxf) + #if SIMDE_MATH_BUILTIN_LIBM(fmaxf) + #define simde_math_fmaxf(x, y) __builtin_fmaxf(x, y) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_fmaxf(x, y) std::fmax(x, y) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_fmaxf(x, y) fmaxf(x, y) + #endif +#endif + +#if !defined(simde_math_hypot) + #if SIMDE_MATH_BUILTIN_LIBM(hypot) + #define simde_math_hypot(y, x) __builtin_hypot(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_hypot(y, x) std::hypot(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_hypot(y, x) hypot(y, x) + #endif +#endif + +#if !defined(simde_math_hypotf) + #if SIMDE_MATH_BUILTIN_LIBM(hypotf) + #define simde_math_hypotf(y, x) __builtin_hypotf(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_hypotf(y, x) std::hypot(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_hypotf(y, x) hypotf(y, x) + #endif +#endif + +#if !defined(simde_math_log) + #if SIMDE_MATH_BUILTIN_LIBM(log) + #define simde_math_log(v) __builtin_log(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log(v) std::log(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log(v) log(v) + #endif +#endif + +#if !defined(simde_math_logf) + #if SIMDE_MATH_BUILTIN_LIBM(logf) + #define simde_math_logf(v) __builtin_logf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_logf(v) std::log(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_logf(v) logf(v) + #endif +#endif + +#if !defined(simde_math_logb) + #if SIMDE_MATH_BUILTIN_LIBM(logb) + #define simde_math_logb(v) __builtin_logb(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_logb(v) std::logb(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_logb(v) logb(v) + #endif +#endif + +#if !defined(simde_math_logbf) + #if SIMDE_MATH_BUILTIN_LIBM(logbf) + #define simde_math_logbf(v) __builtin_logbf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_logbf(v) std::logb(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_logbf(v) logbf(v) + #endif +#endif + +#if !defined(simde_math_log1p) + #if SIMDE_MATH_BUILTIN_LIBM(log1p) + #define simde_math_log1p(v) __builtin_log1p(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log1p(v) std::log1p(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log1p(v) log1p(v) + #endif +#endif + +#if !defined(simde_math_log1pf) + #if SIMDE_MATH_BUILTIN_LIBM(log1pf) + #define simde_math_log1pf(v) __builtin_log1pf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log1pf(v) std::log1p(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log1pf(v) log1pf(v) + #endif +#endif + +#if !defined(simde_math_log2) + #if SIMDE_MATH_BUILTIN_LIBM(log2) + #define simde_math_log2(v) __builtin_log2(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log2(v) std::log2(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log2(v) log2(v) + #endif +#endif + +#if !defined(simde_math_log2f) + #if SIMDE_MATH_BUILTIN_LIBM(log2f) + #define simde_math_log2f(v) __builtin_log2f(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log2f(v) std::log2(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log2f(v) log2f(v) + #endif +#endif + +#if !defined(simde_math_log10) + #if SIMDE_MATH_BUILTIN_LIBM(log10) + #define simde_math_log10(v) __builtin_log10(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log10(v) std::log10(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log10(v) log10(v) + #endif +#endif + +#if !defined(simde_math_log10f) + #if SIMDE_MATH_BUILTIN_LIBM(log10f) + #define simde_math_log10f(v) __builtin_log10f(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_log10f(v) std::log10(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_log10f(v) log10f(v) + #endif +#endif + +#if !defined(simde_math_modf) + #if SIMDE_MATH_BUILTIN_LIBM(modf) + #define simde_math_modf(x, iptr) __builtin_modf(x, iptr) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_modf(x, iptr) std::modf(x, iptr) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_modf(x, iptr) modf(x, iptr) + #endif +#endif + +#if !defined(simde_math_modff) + #if SIMDE_MATH_BUILTIN_LIBM(modff) + #define simde_math_modff(x, iptr) __builtin_modff(x, iptr) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_modff(x, iptr) std::modf(x, iptr) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_modff(x, iptr) modff(x, iptr) + #endif +#endif + +#if !defined(simde_math_nearbyint) + #if SIMDE_MATH_BUILTIN_LIBM(nearbyint) + #define simde_math_nearbyint(v) __builtin_nearbyint(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_nearbyint(v) std::nearbyint(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_nearbyint(v) nearbyint(v) + #endif +#endif + +#if !defined(simde_math_nearbyintf) + #if SIMDE_MATH_BUILTIN_LIBM(nearbyintf) + #define simde_math_nearbyintf(v) __builtin_nearbyintf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_nearbyintf(v) std::nearbyint(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_nearbyintf(v) nearbyintf(v) + #endif +#endif + +#if !defined(simde_math_pow) + #if SIMDE_MATH_BUILTIN_LIBM(pow) + #define simde_math_pow(y, x) __builtin_pow(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_pow(y, x) std::pow(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_pow(y, x) pow(y, x) + #endif +#endif + +#if !defined(simde_math_powf) + #if SIMDE_MATH_BUILTIN_LIBM(powf) + #define simde_math_powf(y, x) __builtin_powf(y, x) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_powf(y, x) std::pow(y, x) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_powf(y, x) powf(y, x) + #endif +#endif + +#if !defined(simde_math_rint) + #if SIMDE_MATH_BUILTIN_LIBM(rint) + #define simde_math_rint(v) __builtin_rint(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_rint(v) std::rint(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_rint(v) rint(v) + #endif +#endif + +#if !defined(simde_math_rintf) + #if SIMDE_MATH_BUILTIN_LIBM(rintf) + #define simde_math_rintf(v) __builtin_rintf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_rintf(v) std::rint(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_rintf(v) rintf(v) + #endif +#endif + +#if !defined(simde_math_round) + #if SIMDE_MATH_BUILTIN_LIBM(round) + #define simde_math_round(v) __builtin_round(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_round(v) std::round(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_round(v) round(v) + #endif +#endif + +#if !defined(simde_math_roundf) + #if SIMDE_MATH_BUILTIN_LIBM(roundf) + #define simde_math_roundf(v) __builtin_roundf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_roundf(v) std::round(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_roundf(v) roundf(v) + #endif +#endif + +#if !defined(simde_math_roundeven) + #if \ + ((!defined(HEDLEY_EMSCRIPTEN_VERSION) || HEDLEY_EMSCRIPTEN_VERSION_CHECK(3, 1, 43)) && HEDLEY_HAS_BUILTIN(__builtin_roundeven)) || \ + HEDLEY_GCC_VERSION_CHECK(10,0,0) + #define simde_math_roundeven(v) __builtin_roundeven(v) + #elif defined(simde_math_round) && defined(simde_math_fabs) + static HEDLEY_INLINE + double + simde_math_roundeven(double v) { + double rounded = simde_math_round(v); + double diff = rounded - v; + if (HEDLEY_UNLIKELY(simde_math_fabs(diff) == 0.5) && (HEDLEY_STATIC_CAST(int64_t, rounded) & 1)) { + rounded = v - diff; + } + return rounded; + } + #define simde_math_roundeven simde_math_roundeven + #endif +#endif + +#if !defined(simde_math_roundevenf) + #if \ + ((!defined(HEDLEY_EMSCRIPTEN_VERSION) || HEDLEY_EMSCRIPTEN_VERSION_CHECK(3, 1, 43)) && HEDLEY_HAS_BUILTIN(__builtin_roundevenf)) || \ + HEDLEY_GCC_VERSION_CHECK(10,0,0) + #define simde_math_roundevenf(v) __builtin_roundevenf(v) + #elif defined(simde_math_roundf) && defined(simde_math_fabsf) + static HEDLEY_INLINE + float + simde_math_roundevenf(float v) { + float rounded = simde_math_roundf(v); + float diff = rounded - v; + if (HEDLEY_UNLIKELY(simde_math_fabsf(diff) == 0.5f) && (HEDLEY_STATIC_CAST(int32_t, rounded) & 1)) { + rounded = v - diff; + } + return rounded; + } + #define simde_math_roundevenf simde_math_roundevenf + #endif +#endif + +#if !defined(simde_math_sin) + #if SIMDE_MATH_BUILTIN_LIBM(sin) + #define simde_math_sin(v) __builtin_sin(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sin(v) std::sin(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sin(v) sin(v) + #endif +#endif + +#if !defined(simde_math_sinf) + #if SIMDE_MATH_BUILTIN_LIBM(sinf) + #define simde_math_sinf(v) __builtin_sinf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sinf(v) std::sin(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sinf(v) sinf(v) + #endif +#endif + +#if !defined(simde_math_sinh) + #if SIMDE_MATH_BUILTIN_LIBM(sinh) + #define simde_math_sinh(v) __builtin_sinh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sinh(v) std::sinh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sinh(v) sinh(v) + #endif +#endif + +#if !defined(simde_math_sinhf) + #if SIMDE_MATH_BUILTIN_LIBM(sinhf) + #define simde_math_sinhf(v) __builtin_sinhf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sinhf(v) std::sinh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sinhf(v) sinhf(v) + #endif +#endif + +#if !defined(simde_math_sqrt) + #if SIMDE_MATH_BUILTIN_LIBM(sqrt) + #define simde_math_sqrt(v) __builtin_sqrt(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sqrt(v) std::sqrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sqrt(v) sqrt(v) + #endif +#endif + +#if !defined(simde_math_sqrtf) + #if SIMDE_MATH_BUILTIN_LIBM(sqrtf) + #define simde_math_sqrtf(v) __builtin_sqrtf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sqrtf(v) std::sqrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sqrtf(v) sqrtf(v) + #endif +#endif + +#if !defined(simde_math_sqrtl) + #if SIMDE_MATH_BUILTIN_LIBM(sqrtl) + #define simde_math_sqrtl(v) __builtin_sqrtl(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_sqrtl(v) std::sqrt(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_sqrtl(v) sqrtl(v) + #endif +#endif + +#if !defined(simde_math_tan) + #if SIMDE_MATH_BUILTIN_LIBM(tan) + #define simde_math_tan(v) __builtin_tan(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_tan(v) std::tan(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_tan(v) tan(v) + #endif +#endif + +#if !defined(simde_math_tanf) + #if SIMDE_MATH_BUILTIN_LIBM(tanf) + #define simde_math_tanf(v) __builtin_tanf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_tanf(v) std::tan(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_tanf(v) tanf(v) + #endif +#endif + +#if !defined(simde_math_tanh) + #if SIMDE_MATH_BUILTIN_LIBM(tanh) + #define simde_math_tanh(v) __builtin_tanh(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_tanh(v) std::tanh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_tanh(v) tanh(v) + #endif +#endif + +#if !defined(simde_math_tanhf) + #if SIMDE_MATH_BUILTIN_LIBM(tanhf) + #define simde_math_tanhf(v) __builtin_tanhf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_tanhf(v) std::tanh(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_tanhf(v) tanhf(v) + #endif +#endif + +#if !defined(simde_math_trunc) + #if SIMDE_MATH_BUILTIN_LIBM(trunc) + #define simde_math_trunc(v) __builtin_trunc(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_trunc(v) std::trunc(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_trunc(v) trunc(v) + #endif +#endif + +#if !defined(simde_math_truncf) + #if SIMDE_MATH_BUILTIN_LIBM(truncf) + #define simde_math_truncf(v) __builtin_truncf(v) + #elif defined(SIMDE_MATH_HAVE_CMATH) + #define simde_math_truncf(v) std::trunc(v) + #elif defined(SIMDE_MATH_HAVE_MATH_H) + #define simde_math_truncf(v) truncf(v) + #endif +#endif + +/*** Comparison macros (which don't raise invalid errors) ***/ + +#if defined(isunordered) + #define simde_math_isunordered(x, y) isunordered(x, y) +#elif HEDLEY_HAS_BUILTIN(__builtin_isunordered) + #define simde_math_isunordered(x, y) __builtin_isunordered(x, y) +#else + static HEDLEY_INLINE + int simde_math_isunordered(double x, double y) { + return (x != y) && (x != x || y != y); + } + #define simde_math_isunordered simde_math_isunordered + + static HEDLEY_INLINE + int simde_math_isunorderedf(float x, float y) { + return (x != y) && (x != x || y != y); + } + #define simde_math_isunorderedf simde_math_isunorderedf +#endif +#if !defined(simde_math_isunorderedf) + #define simde_math_isunorderedf simde_math_isunordered +#endif + +/*** Additional functions not in libm ***/ + +#if defined(simde_math_fabs) && defined(simde_math_sqrt) && defined(simde_math_exp) + static HEDLEY_INLINE + double + simde_math_cdfnorm(double x) { + /* https://www.johndcook.com/blog/cpp_phi/ + * Public Domain */ + static const double a1 = 0.254829592; + static const double a2 = -0.284496736; + static const double a3 = 1.421413741; + static const double a4 = -1.453152027; + static const double a5 = 1.061405429; + static const double p = 0.3275911; + + const int sign = x < 0; + x = simde_math_fabs(x) / simde_math_sqrt(2.0); + + /* A&S formula 7.1.26 */ + double t = 1.0 / (1.0 + p * x); + double y = 1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * simde_math_exp(-x * x); + + return 0.5 * (1.0 + (sign ? -y : y)); + } + #define simde_math_cdfnorm simde_math_cdfnorm +#endif + +#if defined(simde_math_fabsf) && defined(simde_math_sqrtf) && defined(simde_math_expf) + static HEDLEY_INLINE + float + simde_math_cdfnormf(float x) { + /* https://www.johndcook.com/blog/cpp_phi/ + * Public Domain */ + static const float a1 = 0.254829592f; + static const float a2 = -0.284496736f; + static const float a3 = 1.421413741f; + static const float a4 = -1.453152027f; + static const float a5 = 1.061405429f; + static const float p = 0.3275911f; + + const int sign = x < 0; + x = simde_math_fabsf(x) / simde_math_sqrtf(2.0f); + + /* A&S formula 7.1.26 */ + float t = 1.0f / (1.0f + p * x); + float y = 1.0f - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * simde_math_expf(-x * x); + + return 0.5f * (1.0f + (sign ? -y : y)); + } + #define simde_math_cdfnormf simde_math_cdfnormf +#endif + +#if !defined(simde_math_cdfnorminv) && defined(simde_math_log) && defined(simde_math_sqrt) + /*https://web.archive.org/web/20150910081113/http://home.online.no/~pjacklam/notes/invnorm/impl/sprouse/ltqnorm.c*/ + static HEDLEY_INLINE + double + simde_math_cdfnorminv(double p) { + static const double a[6] = { + -3.969683028665376e+01, + 2.209460984245205e+02, + -2.759285104469687e+02, + 1.383577518672690e+02, + -3.066479806614716e+01, + 2.506628277459239e+00 + }; + + static const double b[5] = { + -5.447609879822406e+01, + 1.615858368580409e+02, + -1.556989798598866e+02, + 6.680131188771972e+01, + -1.328068155288572e+01 + }; + + static const double c[6] = { + -7.784894002430293e-03, + -3.223964580411365e-01, + -2.400758277161838e+00, + -2.549732539343734e+00, + 4.374664141464968e+00, + 2.938163982698783e+00 + }; + + static const double d[4] = { + 7.784695709041462e-03, + 3.224671290700398e-01, + 2.445134137142996e+00, + 3.754408661907416e+00 + }; + + static const double low = 0.02425; + static const double high = 0.97575; + double q, r; + + if (p < 0 || p > 1) { + return 0.0; + } else if (p == 0) { + return -SIMDE_MATH_INFINITY; + } else if (p == 1) { + return SIMDE_MATH_INFINITY; + } else if (p < low) { + q = simde_math_sqrt(-2.0 * simde_math_log(p)); + return + (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / + (((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1)); + } else if (p > high) { + q = simde_math_sqrt(-2.0 * simde_math_log(1.0 - p)); + return + -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / + (((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1)); + } else { + q = p - 0.5; + r = q * q; + return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * + q / (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1); + } +} +#define simde_math_cdfnorminv simde_math_cdfnorminv +#endif + +#if !defined(simde_math_cdfnorminvf) && defined(simde_math_logf) && defined(simde_math_sqrtf) + static HEDLEY_INLINE + float + simde_math_cdfnorminvf(float p) { + static const float a[6] = { + -3.969683028665376e+01f, + 2.209460984245205e+02f, + -2.759285104469687e+02f, + 1.383577518672690e+02f, + -3.066479806614716e+01f, + 2.506628277459239e+00f + }; + static const float b[5] = { + -5.447609879822406e+01f, + 1.615858368580409e+02f, + -1.556989798598866e+02f, + 6.680131188771972e+01f, + -1.328068155288572e+01f + }; + static const float c[6] = { + -7.784894002430293e-03f, + -3.223964580411365e-01f, + -2.400758277161838e+00f, + -2.549732539343734e+00f, + 4.374664141464968e+00f, + 2.938163982698783e+00f + }; + static const float d[4] = { + 7.784695709041462e-03f, + 3.224671290700398e-01f, + 2.445134137142996e+00f, + 3.754408661907416e+00f + }; + static const float low = 0.02425f; + static const float high = 0.97575f; + float q, r; + + if (p < 0 || p > 1) { + return 0.0f; + } else if (p == 0) { + return -SIMDE_MATH_INFINITYF; + } else if (p == 1) { + return SIMDE_MATH_INFINITYF; + } else if (p < low) { + q = simde_math_sqrtf(-2.0f * simde_math_logf(p)); + return + (((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / + (((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1)); + } else if (p > high) { + q = simde_math_sqrtf(-2.0f * simde_math_logf(1.0f - p)); + return + -(((((c[0] * q + c[1]) * q + c[2]) * q + c[3]) * q + c[4]) * q + c[5]) / + (((((d[0] * q + d[1]) * q + d[2]) * q + d[3]) * q + 1)); + } else { + q = p - 0.5f; + r = q * q; + return (((((a[0] * r + a[1]) * r + a[2]) * r + a[3]) * r + a[4]) * r + a[5]) * + q / (((((b[0] * r + b[1]) * r + b[2]) * r + b[3]) * r + b[4]) * r + 1); + } + } + #define simde_math_cdfnorminvf simde_math_cdfnorminvf +#endif + +#if !defined(simde_math_erfinv) && defined(simde_math_log) && defined(simde_math_copysign) && defined(simde_math_sqrt) + static HEDLEY_INLINE + double + simde_math_erfinv(double x) { + /* https://stackoverflow.com/questions/27229371/inverse-error-function-in-c + * + * The original answer on SO uses a constant of 0.147, but in my + * testing 0.14829094707965850830078125 gives a lower average absolute error + * (0.0001410958211636170744895935 vs. 0.0001465479290345683693885803). + * That said, if your goal is to minimize the *maximum* absolute + * error, 0.15449436008930206298828125 provides significantly better + * results; 0.0009250640869140625000000000 vs ~ 0.005. */ + double tt1, tt2, lnx; + double sgn = simde_math_copysign(1.0, x); + + x = (1.0 - x) * (1.0 + x); + lnx = simde_math_log(x); + + tt1 = 2.0 / (SIMDE_MATH_PI * 0.14829094707965850830078125) + 0.5 * lnx; + tt2 = (1.0 / 0.14829094707965850830078125) * lnx; + + return sgn * simde_math_sqrt(-tt1 + simde_math_sqrt(tt1 * tt1 - tt2)); + } + #define simde_math_erfinv simde_math_erfinv +#endif + +#if !defined(simde_math_erfinvf) && defined(simde_math_logf) && defined(simde_math_copysignf) && defined(simde_math_sqrtf) + static HEDLEY_INLINE + float + simde_math_erfinvf(float x) { + float tt1, tt2, lnx; + float sgn = simde_math_copysignf(1.0f, x); + + x = (1.0f - x) * (1.0f + x); + lnx = simde_math_logf(x); + + tt1 = 2.0f / (SIMDE_MATH_PIF * 0.14829094707965850830078125f) + 0.5f * lnx; + tt2 = (1.0f / 0.14829094707965850830078125f) * lnx; + + return sgn * simde_math_sqrtf(-tt1 + simde_math_sqrtf(tt1 * tt1 - tt2)); + } + #define simde_math_erfinvf simde_math_erfinvf +#endif + +#if !defined(simde_math_erfcinv) && defined(simde_math_erfinv) && defined(simde_math_log) && defined(simde_math_sqrt) + static HEDLEY_INLINE + double + simde_math_erfcinv(double x) { + if(x >= 0.0625 && x < 2.0) { + return simde_math_erfinv(1.0 - x); + } else if (x < 0.0625 && x >= 1.0e-100) { + static const double p[6] = { + 0.1550470003116, + 1.382719649631, + 0.690969348887, + -1.128081391617, + 0.680544246825, + -0.16444156791 + }; + static const double q[3] = { + 0.155024849822, + 1.385228141995, + 1.000000000000 + }; + + const double t = 1.0 / simde_math_sqrt(-simde_math_log(x)); + return (p[0] / t + p[1] + t * (p[2] + t * (p[3] + t * (p[4] + t * p[5])))) / + (q[0] + t * (q[1] + t * (q[2]))); + } else if (x < 1.0e-100 && x >= SIMDE_MATH_DBL_MIN) { + static const double p[4] = { + 0.00980456202915, + 0.363667889171, + 0.97302949837, + -0.5374947401 + }; + static const double q[3] = { + 0.00980451277802, + 0.363699971544, + 1.000000000000 + }; + + const double t = 1.0 / simde_math_sqrt(-simde_math_log(x)); + return (p[0] / t + p[1] + t * (p[2] + t * p[3])) / + (q[0] + t * (q[1] + t * (q[2]))); + } else if (!simde_math_isnormal(x)) { + return SIMDE_MATH_INFINITY; + } else { + return -SIMDE_MATH_INFINITY; + } + } + + #define simde_math_erfcinv simde_math_erfcinv +#endif + +#if !defined(simde_math_erfcinvf) && defined(simde_math_erfinvf) && defined(simde_math_logf) && defined(simde_math_sqrtf) + static HEDLEY_INLINE + float + simde_math_erfcinvf(float x) { + if(x >= 0.0625f && x < 2.0f) { + return simde_math_erfinvf(1.0f - x); + } else if (x < 0.0625f && x >= SIMDE_MATH_FLT_MIN) { + static const float p[6] = { + 0.1550470003116f, + 1.382719649631f, + 0.690969348887f, + -1.128081391617f, + 0.680544246825f + -0.164441567910f + }; + static const float q[3] = { + 0.155024849822f, + 1.385228141995f, + 1.000000000000f + }; + + const float t = 1.0f / simde_math_sqrtf(-simde_math_logf(x)); + return (p[0] / t + p[1] + t * (p[2] + t * (p[3] + t * (p[4] + t * p[5])))) / + (q[0] + t * (q[1] + t * (q[2]))); + } else if (x < SIMDE_MATH_FLT_MIN && simde_math_isnormalf(x)) { + static const float p[4] = { + 0.00980456202915f, + 0.36366788917100f, + 0.97302949837000f, + -0.5374947401000f + }; + static const float q[3] = { + 0.00980451277802f, + 0.36369997154400f, + 1.00000000000000f + }; + + const float t = 1.0f / simde_math_sqrtf(-simde_math_logf(x)); + return (p[0] / t + p[1] + t * (p[2] + t * p[3])) / + (q[0] + t * (q[1] + t * (q[2]))); + } else { + return simde_math_isnormalf(x) ? -SIMDE_MATH_INFINITYF : SIMDE_MATH_INFINITYF; + } + } + + #define simde_math_erfcinvf simde_math_erfcinvf +#endif + +static HEDLEY_INLINE +double +simde_math_rad2deg(double radians) { + return radians * SIMDE_MATH_180_OVER_PI; +} + +static HEDLEY_INLINE +float +simde_math_rad2degf(float radians) { + return radians * SIMDE_MATH_180_OVER_PIF; +} + +static HEDLEY_INLINE +double +simde_math_deg2rad(double degrees) { + return degrees * SIMDE_MATH_PI_OVER_180; +} + +static HEDLEY_INLINE +float +simde_math_deg2radf(float degrees) { + return degrees * (SIMDE_MATH_PI_OVER_180F); +} + +/*** Saturated arithmetic ***/ + +static HEDLEY_INLINE +int8_t +simde_math_adds_i8(int8_t a, int8_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddb_s8(a, b); + #else + uint8_t a_ = HEDLEY_STATIC_CAST(uint8_t, a); + uint8_t b_ = HEDLEY_STATIC_CAST(uint8_t, b); + uint8_t r_ = a_ + b_; + + a_ = (a_ >> ((8 * sizeof(r_)) - 1)) + INT8_MAX; + if (HEDLEY_STATIC_CAST(int8_t, ((a_ ^ b_) | ~(b_ ^ r_))) >= 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int8_t, r_); + #endif +} + +static HEDLEY_INLINE +int16_t +simde_math_adds_i16(int16_t a, int16_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddh_s16(a, b); + #else + uint16_t a_ = HEDLEY_STATIC_CAST(uint16_t, a); + uint16_t b_ = HEDLEY_STATIC_CAST(uint16_t, b); + uint16_t r_ = a_ + b_; + + a_ = (a_ >> ((8 * sizeof(r_)) - 1)) + INT16_MAX; + if (HEDLEY_STATIC_CAST(int16_t, ((a_ ^ b_) | ~(b_ ^ r_))) >= 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int16_t, r_); + #endif +} + +static HEDLEY_INLINE +int32_t +simde_math_adds_i32(int32_t a, int32_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqadds_s32(a, b); + #else + uint32_t a_ = HEDLEY_STATIC_CAST(uint32_t, a); + uint32_t b_ = HEDLEY_STATIC_CAST(uint32_t, b); + uint32_t r_ = a_ + b_; + + a_ = (a_ >> ((8 * sizeof(r_)) - 1)) + INT32_MAX; + if (HEDLEY_STATIC_CAST(int32_t, ((a_ ^ b_) | ~(b_ ^ r_))) >= 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int32_t, r_); + #endif +} + +static HEDLEY_INLINE +int64_t +simde_math_adds_i64(int64_t a, int64_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddd_s64(a, b); + #else + uint64_t a_ = HEDLEY_STATIC_CAST(uint64_t, a); + uint64_t b_ = HEDLEY_STATIC_CAST(uint64_t, b); + uint64_t r_ = a_ + b_; + + a_ = (a_ >> ((8 * sizeof(r_)) - 1)) + INT64_MAX; + if (HEDLEY_STATIC_CAST(int64_t, ((a_ ^ b_) | ~(b_ ^ r_))) >= 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int64_t, r_); + #endif +} + +static HEDLEY_INLINE +uint8_t +simde_math_adds_u8(uint8_t a, uint8_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddb_u8(a, b); + #else + uint8_t r = a + b; + r |= -(r < a); + return r; + #endif +} + +static HEDLEY_INLINE +uint16_t +simde_math_adds_u16(uint16_t a, uint16_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddh_u16(a, b); + #else + uint16_t r = a + b; + r |= -(r < a); + return r; + #endif +} + +static HEDLEY_INLINE +uint32_t +simde_math_adds_u32(uint32_t a, uint32_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqadds_u32(a, b); + #else + uint32_t r = a + b; + r |= -(r < a); + return r; + #endif +} + +static HEDLEY_INLINE +uint64_t +simde_math_adds_u64(uint64_t a, uint64_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqaddd_u64(a, b); + #else + uint64_t r = a + b; + r |= -(r < a); + return r; + #endif +} + +static HEDLEY_INLINE +int8_t +simde_math_subs_i8(int8_t a, int8_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubb_s8(a, b); + #else + uint8_t a_ = HEDLEY_STATIC_CAST(uint8_t, a); + uint8_t b_ = HEDLEY_STATIC_CAST(uint8_t, b); + uint8_t r_ = a_ - b_; + + a_ = (a_ >> 7) + INT8_MAX; + + if (HEDLEY_STATIC_CAST(int8_t, (a_ ^ b_) & (a_ ^ r_)) < 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int8_t, r_); + #endif +} + +static HEDLEY_INLINE +int16_t +simde_math_subs_i16(int16_t a, int16_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubh_s16(a, b); + #else + uint16_t a_ = HEDLEY_STATIC_CAST(uint16_t, a); + uint16_t b_ = HEDLEY_STATIC_CAST(uint16_t, b); + uint16_t r_ = a_ - b_; + + a_ = (a_ >> 15) + INT16_MAX; + + if (HEDLEY_STATIC_CAST(int16_t, (a_ ^ b_) & (a_ ^ r_)) < 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int16_t, r_); + #endif +} + +static HEDLEY_INLINE +int32_t +simde_math_subs_i32(int32_t a, int32_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubs_s32(a, b); + #else + uint32_t a_ = HEDLEY_STATIC_CAST(uint32_t, a); + uint32_t b_ = HEDLEY_STATIC_CAST(uint32_t, b); + uint32_t r_ = a_ - b_; + + a_ = (a_ >> 31) + INT32_MAX; + + if (HEDLEY_STATIC_CAST(int32_t, (a_ ^ b_) & (a_ ^ r_)) < 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int32_t, r_); + #endif +} + +static HEDLEY_INLINE +int64_t +simde_math_subs_i64(int64_t a, int64_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubd_s64(a, b); + #else + uint64_t a_ = HEDLEY_STATIC_CAST(uint64_t, a); + uint64_t b_ = HEDLEY_STATIC_CAST(uint64_t, b); + uint64_t r_ = a_ - b_; + + a_ = (a_ >> 63) + INT64_MAX; + + if (HEDLEY_STATIC_CAST(int64_t, (a_ ^ b_) & (a_ ^ r_)) < 0) { + r_ = a_; + } + + return HEDLEY_STATIC_CAST(int64_t, r_); + #endif +} + +static HEDLEY_INLINE +uint8_t +simde_math_subs_u8(uint8_t a, uint8_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubb_u8(a, b); + #else + uint8_t res = a - b; + res &= -(res <= a); + return res; + #endif +} + +static HEDLEY_INLINE +uint16_t +simde_math_subs_u16(uint16_t a, uint16_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubh_u16(a, b); + #else + uint16_t res = a - b; + res &= -(res <= a); + return res; + #endif +} + +static HEDLEY_INLINE +uint32_t +simde_math_subs_u32(uint32_t a, uint32_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubs_u32(a, b); + #else + uint32_t res = a - b; + res &= -(res <= a); + return res; + #endif +} + +static HEDLEY_INLINE +uint64_t +simde_math_subs_u64(uint64_t a, uint64_t b) { + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return vqsubd_u64(a, b); + #else + uint64_t res = a - b; + res &= -(res <= a); + return res; + #endif +} + +HEDLEY_DIAGNOSTIC_POP + +#endif /* !defined(SIMDE_MATH_H) */ +/* :: End simde/simde-math.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/simde-constify.h :: */ +/* SPDX-License-Identifier: MIT + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Copyright: + * 2020 Evan Nemerson + */ + +/* Constify macros. For internal use only. + * + * These are used to make it possible to call a function which takes + * an Integer Constant Expression (ICE) using a compile time constant. + * Technically it would also be possible to use a value not trivially + * known by the compiler, but there would be a siginficant performance + * hit (a switch switch is used). + * + * The basic idea is pretty simple; we just emit a do while loop which + * contains a switch with a case for every possible value of the + * constant. + * + * As long as the value you pass to the function in constant, pretty + * much any copmiler shouldn't have a problem generating exactly the + * same code as if you had used an ICE. + * + * This is intended to be used in the SIMDe implementations of + * functions the compilers require to be an ICE, but the other benefit + * is that if we also disable the warnings from + * SIMDE_REQUIRE_CONSTANT_RANGE we can actually just allow the tests + * to use non-ICE parameters + */ + +#if !defined(SIMDE_CONSTIFY_H) +#define SIMDE_CONSTIFY_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ +SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ + +#define SIMDE_CONSTIFY_2_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_4_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_8_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + case 4: result = func_name(__VA_ARGS__, 4); break; \ + case 5: result = func_name(__VA_ARGS__, 5); break; \ + case 6: result = func_name(__VA_ARGS__, 6); break; \ + case 7: result = func_name(__VA_ARGS__, 7); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_16_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + case 4: result = func_name(__VA_ARGS__, 4); break; \ + case 5: result = func_name(__VA_ARGS__, 5); break; \ + case 6: result = func_name(__VA_ARGS__, 6); break; \ + case 7: result = func_name(__VA_ARGS__, 7); break; \ + case 8: result = func_name(__VA_ARGS__, 8); break; \ + case 9: result = func_name(__VA_ARGS__, 9); break; \ + case 10: result = func_name(__VA_ARGS__, 10); break; \ + case 11: result = func_name(__VA_ARGS__, 11); break; \ + case 12: result = func_name(__VA_ARGS__, 12); break; \ + case 13: result = func_name(__VA_ARGS__, 13); break; \ + case 14: result = func_name(__VA_ARGS__, 14); break; \ + case 15: result = func_name(__VA_ARGS__, 15); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_32_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + case 4: result = func_name(__VA_ARGS__, 4); break; \ + case 5: result = func_name(__VA_ARGS__, 5); break; \ + case 6: result = func_name(__VA_ARGS__, 6); break; \ + case 7: result = func_name(__VA_ARGS__, 7); break; \ + case 8: result = func_name(__VA_ARGS__, 8); break; \ + case 9: result = func_name(__VA_ARGS__, 9); break; \ + case 10: result = func_name(__VA_ARGS__, 10); break; \ + case 11: result = func_name(__VA_ARGS__, 11); break; \ + case 12: result = func_name(__VA_ARGS__, 12); break; \ + case 13: result = func_name(__VA_ARGS__, 13); break; \ + case 14: result = func_name(__VA_ARGS__, 14); break; \ + case 15: result = func_name(__VA_ARGS__, 15); break; \ + case 16: result = func_name(__VA_ARGS__, 16); break; \ + case 17: result = func_name(__VA_ARGS__, 17); break; \ + case 18: result = func_name(__VA_ARGS__, 18); break; \ + case 19: result = func_name(__VA_ARGS__, 19); break; \ + case 20: result = func_name(__VA_ARGS__, 20); break; \ + case 21: result = func_name(__VA_ARGS__, 21); break; \ + case 22: result = func_name(__VA_ARGS__, 22); break; \ + case 23: result = func_name(__VA_ARGS__, 23); break; \ + case 24: result = func_name(__VA_ARGS__, 24); break; \ + case 25: result = func_name(__VA_ARGS__, 25); break; \ + case 26: result = func_name(__VA_ARGS__, 26); break; \ + case 27: result = func_name(__VA_ARGS__, 27); break; \ + case 28: result = func_name(__VA_ARGS__, 28); break; \ + case 29: result = func_name(__VA_ARGS__, 29); break; \ + case 30: result = func_name(__VA_ARGS__, 30); break; \ + case 31: result = func_name(__VA_ARGS__, 31); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_64_(func_name, result, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: result = func_name(__VA_ARGS__, 0); break; \ + case 1: result = func_name(__VA_ARGS__, 1); break; \ + case 2: result = func_name(__VA_ARGS__, 2); break; \ + case 3: result = func_name(__VA_ARGS__, 3); break; \ + case 4: result = func_name(__VA_ARGS__, 4); break; \ + case 5: result = func_name(__VA_ARGS__, 5); break; \ + case 6: result = func_name(__VA_ARGS__, 6); break; \ + case 7: result = func_name(__VA_ARGS__, 7); break; \ + case 8: result = func_name(__VA_ARGS__, 8); break; \ + case 9: result = func_name(__VA_ARGS__, 9); break; \ + case 10: result = func_name(__VA_ARGS__, 10); break; \ + case 11: result = func_name(__VA_ARGS__, 11); break; \ + case 12: result = func_name(__VA_ARGS__, 12); break; \ + case 13: result = func_name(__VA_ARGS__, 13); break; \ + case 14: result = func_name(__VA_ARGS__, 14); break; \ + case 15: result = func_name(__VA_ARGS__, 15); break; \ + case 16: result = func_name(__VA_ARGS__, 16); break; \ + case 17: result = func_name(__VA_ARGS__, 17); break; \ + case 18: result = func_name(__VA_ARGS__, 18); break; \ + case 19: result = func_name(__VA_ARGS__, 19); break; \ + case 20: result = func_name(__VA_ARGS__, 20); break; \ + case 21: result = func_name(__VA_ARGS__, 21); break; \ + case 22: result = func_name(__VA_ARGS__, 22); break; \ + case 23: result = func_name(__VA_ARGS__, 23); break; \ + case 24: result = func_name(__VA_ARGS__, 24); break; \ + case 25: result = func_name(__VA_ARGS__, 25); break; \ + case 26: result = func_name(__VA_ARGS__, 26); break; \ + case 27: result = func_name(__VA_ARGS__, 27); break; \ + case 28: result = func_name(__VA_ARGS__, 28); break; \ + case 29: result = func_name(__VA_ARGS__, 29); break; \ + case 30: result = func_name(__VA_ARGS__, 30); break; \ + case 31: result = func_name(__VA_ARGS__, 31); break; \ + case 32: result = func_name(__VA_ARGS__, 32); break; \ + case 33: result = func_name(__VA_ARGS__, 33); break; \ + case 34: result = func_name(__VA_ARGS__, 34); break; \ + case 35: result = func_name(__VA_ARGS__, 35); break; \ + case 36: result = func_name(__VA_ARGS__, 36); break; \ + case 37: result = func_name(__VA_ARGS__, 37); break; \ + case 38: result = func_name(__VA_ARGS__, 38); break; \ + case 39: result = func_name(__VA_ARGS__, 39); break; \ + case 40: result = func_name(__VA_ARGS__, 40); break; \ + case 41: result = func_name(__VA_ARGS__, 41); break; \ + case 42: result = func_name(__VA_ARGS__, 42); break; \ + case 43: result = func_name(__VA_ARGS__, 43); break; \ + case 44: result = func_name(__VA_ARGS__, 44); break; \ + case 45: result = func_name(__VA_ARGS__, 45); break; \ + case 46: result = func_name(__VA_ARGS__, 46); break; \ + case 47: result = func_name(__VA_ARGS__, 47); break; \ + case 48: result = func_name(__VA_ARGS__, 48); break; \ + case 49: result = func_name(__VA_ARGS__, 49); break; \ + case 50: result = func_name(__VA_ARGS__, 50); break; \ + case 51: result = func_name(__VA_ARGS__, 51); break; \ + case 52: result = func_name(__VA_ARGS__, 52); break; \ + case 53: result = func_name(__VA_ARGS__, 53); break; \ + case 54: result = func_name(__VA_ARGS__, 54); break; \ + case 55: result = func_name(__VA_ARGS__, 55); break; \ + case 56: result = func_name(__VA_ARGS__, 56); break; \ + case 57: result = func_name(__VA_ARGS__, 57); break; \ + case 58: result = func_name(__VA_ARGS__, 58); break; \ + case 59: result = func_name(__VA_ARGS__, 59); break; \ + case 60: result = func_name(__VA_ARGS__, 60); break; \ + case 61: result = func_name(__VA_ARGS__, 61); break; \ + case 62: result = func_name(__VA_ARGS__, 62); break; \ + case 63: result = func_name(__VA_ARGS__, 63); break; \ + default: result = default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_2_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_4_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_8_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + case 4: func_name(__VA_ARGS__, 4); break; \ + case 5: func_name(__VA_ARGS__, 5); break; \ + case 6: func_name(__VA_ARGS__, 6); break; \ + case 7: func_name(__VA_ARGS__, 7); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_16_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + case 4: func_name(__VA_ARGS__, 4); break; \ + case 5: func_name(__VA_ARGS__, 5); break; \ + case 6: func_name(__VA_ARGS__, 6); break; \ + case 7: func_name(__VA_ARGS__, 7); break; \ + case 8: func_name(__VA_ARGS__, 8); break; \ + case 9: func_name(__VA_ARGS__, 9); break; \ + case 10: func_name(__VA_ARGS__, 10); break; \ + case 11: func_name(__VA_ARGS__, 11); break; \ + case 12: func_name(__VA_ARGS__, 12); break; \ + case 13: func_name(__VA_ARGS__, 13); break; \ + case 14: func_name(__VA_ARGS__, 14); break; \ + case 15: func_name(__VA_ARGS__, 15); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_32_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + case 4: func_name(__VA_ARGS__, 4); break; \ + case 5: func_name(__VA_ARGS__, 5); break; \ + case 6: func_name(__VA_ARGS__, 6); break; \ + case 7: func_name(__VA_ARGS__, 7); break; \ + case 8: func_name(__VA_ARGS__, 8); break; \ + case 9: func_name(__VA_ARGS__, 9); break; \ + case 10: func_name(__VA_ARGS__, 10); break; \ + case 11: func_name(__VA_ARGS__, 11); break; \ + case 12: func_name(__VA_ARGS__, 12); break; \ + case 13: func_name(__VA_ARGS__, 13); break; \ + case 14: func_name(__VA_ARGS__, 14); break; \ + case 15: func_name(__VA_ARGS__, 15); break; \ + case 16: func_name(__VA_ARGS__, 16); break; \ + case 17: func_name(__VA_ARGS__, 17); break; \ + case 18: func_name(__VA_ARGS__, 18); break; \ + case 19: func_name(__VA_ARGS__, 19); break; \ + case 20: func_name(__VA_ARGS__, 20); break; \ + case 21: func_name(__VA_ARGS__, 21); break; \ + case 22: func_name(__VA_ARGS__, 22); break; \ + case 23: func_name(__VA_ARGS__, 23); break; \ + case 24: func_name(__VA_ARGS__, 24); break; \ + case 25: func_name(__VA_ARGS__, 25); break; \ + case 26: func_name(__VA_ARGS__, 26); break; \ + case 27: func_name(__VA_ARGS__, 27); break; \ + case 28: func_name(__VA_ARGS__, 28); break; \ + case 29: func_name(__VA_ARGS__, 29); break; \ + case 30: func_name(__VA_ARGS__, 30); break; \ + case 31: func_name(__VA_ARGS__, 31); break; \ + default: default_case; break; \ + } \ + } while (0) + +#define SIMDE_CONSTIFY_64_NO_RESULT_(func_name, default_case, imm, ...) \ + do { \ + switch(imm) { \ + case 0: func_name(__VA_ARGS__, 0); break; \ + case 1: func_name(__VA_ARGS__, 1); break; \ + case 2: func_name(__VA_ARGS__, 2); break; \ + case 3: func_name(__VA_ARGS__, 3); break; \ + case 4: func_name(__VA_ARGS__, 4); break; \ + case 5: func_name(__VA_ARGS__, 5); break; \ + case 6: func_name(__VA_ARGS__, 6); break; \ + case 7: func_name(__VA_ARGS__, 7); break; \ + case 8: func_name(__VA_ARGS__, 8); break; \ + case 9: func_name(__VA_ARGS__, 9); break; \ + case 10: func_name(__VA_ARGS__, 10); break; \ + case 11: func_name(__VA_ARGS__, 11); break; \ + case 12: func_name(__VA_ARGS__, 12); break; \ + case 13: func_name(__VA_ARGS__, 13); break; \ + case 14: func_name(__VA_ARGS__, 14); break; \ + case 15: func_name(__VA_ARGS__, 15); break; \ + case 16: func_name(__VA_ARGS__, 16); break; \ + case 17: func_name(__VA_ARGS__, 17); break; \ + case 18: func_name(__VA_ARGS__, 18); break; \ + case 19: func_name(__VA_ARGS__, 19); break; \ + case 20: func_name(__VA_ARGS__, 20); break; \ + case 21: func_name(__VA_ARGS__, 21); break; \ + case 22: func_name(__VA_ARGS__, 22); break; \ + case 23: func_name(__VA_ARGS__, 23); break; \ + case 24: func_name(__VA_ARGS__, 24); break; \ + case 25: func_name(__VA_ARGS__, 25); break; \ + case 26: func_name(__VA_ARGS__, 26); break; \ + case 27: func_name(__VA_ARGS__, 27); break; \ + case 28: func_name(__VA_ARGS__, 28); break; \ + case 29: func_name(__VA_ARGS__, 29); break; \ + case 30: func_name(__VA_ARGS__, 30); break; \ + case 31: func_name(__VA_ARGS__, 31); break; \ + case 32: func_name(__VA_ARGS__, 32); break; \ + case 33: func_name(__VA_ARGS__, 33); break; \ + case 34: func_name(__VA_ARGS__, 34); break; \ + case 35: func_name(__VA_ARGS__, 35); break; \ + case 36: func_name(__VA_ARGS__, 36); break; \ + case 37: func_name(__VA_ARGS__, 37); break; \ + case 38: func_name(__VA_ARGS__, 38); break; \ + case 39: func_name(__VA_ARGS__, 39); break; \ + case 40: func_name(__VA_ARGS__, 40); break; \ + case 41: func_name(__VA_ARGS__, 41); break; \ + case 42: func_name(__VA_ARGS__, 42); break; \ + case 43: func_name(__VA_ARGS__, 43); break; \ + case 44: func_name(__VA_ARGS__, 44); break; \ + case 45: func_name(__VA_ARGS__, 45); break; \ + case 46: func_name(__VA_ARGS__, 46); break; \ + case 47: func_name(__VA_ARGS__, 47); break; \ + case 48: func_name(__VA_ARGS__, 48); break; \ + case 49: func_name(__VA_ARGS__, 49); break; \ + case 50: func_name(__VA_ARGS__, 50); break; \ + case 51: func_name(__VA_ARGS__, 51); break; \ + case 52: func_name(__VA_ARGS__, 52); break; \ + case 53: func_name(__VA_ARGS__, 53); break; \ + case 54: func_name(__VA_ARGS__, 54); break; \ + case 55: func_name(__VA_ARGS__, 55); break; \ + case 56: func_name(__VA_ARGS__, 56); break; \ + case 57: func_name(__VA_ARGS__, 57); break; \ + case 58: func_name(__VA_ARGS__, 58); break; \ + case 59: func_name(__VA_ARGS__, 59); break; \ + case 60: func_name(__VA_ARGS__, 60); break; \ + case 61: func_name(__VA_ARGS__, 61); break; \ + case 62: func_name(__VA_ARGS__, 62); break; \ + case 63: func_name(__VA_ARGS__, 63); break; \ + default: default_case; break; \ + } \ + } while (0) + +HEDLEY_DIAGNOSTIC_POP + +#endif +/* :: End simde/simde-constify.h :: */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/simde-align.h :: */ +/* Alignment + * Created by Evan Nemerson + * + * To the extent possible under law, the authors have waived all + * copyright and related or neighboring rights to this code. For + * details, see the Creative Commons Zero 1.0 Universal license at + * + * + * SPDX-License-Identifier: CC0-1.0 + * + ********************************************************************** + * + * This is portability layer which should help iron out some + * differences across various compilers, as well as various versions of + * C and C++. + * + * It was originally developed for SIMD Everywhere + * (), but since its only + * dependency is Hedley (, also CC0) + * it can easily be used in other projects, so please feel free to do + * so. + * + * If you do use this in your project, please keep a link to SIMDe in + * your code to remind you where to report any bugs and/or check for + * updated versions. + * + * # API Overview + * + * The API has several parts, and most macros have a few variations. + * There are APIs for declaring aligned fields/variables, optimization + * hints, and run-time alignment checks. + * + * Briefly, macros ending with "_TO" take numeric values and are great + * when you know the value you would like to use. Macros ending with + * "_LIKE", on the other hand, accept a type and are used when you want + * to use the alignment of a type instead of hardcoding a value. + * + * Documentation for each section of the API is inline. + * + * True to form, MSVC is the main problem and imposes several + * limitations on the effectiveness of the APIs. Detailed descriptions + * of the limitations of each macro are inline, but in general: + * + * * On C11+ or C++11+ code written using this API will work. The + * ASSUME macros may or may not generate a hint to the compiler, but + * that is only an optimization issue and will not actually cause + * failures. + * * If you're using pretty much any compiler other than MSVC, + * everything should basically work as well as in C11/C++11. + */ + +#if !defined(SIMDE_ALIGN_H) +#define SIMDE_ALIGN_H + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ + +/* I know this seems a little silly, but some non-hosted compilers + * don't have stddef.h, so we try to accommodate them. */ +#if !defined(SIMDE_ALIGN_SIZE_T_) + #if defined(__SIZE_TYPE__) + #define SIMDE_ALIGN_SIZE_T_ __SIZE_TYPE__ + #elif defined(__SIZE_T_TYPE__) + #define SIMDE_ALIGN_SIZE_T_ __SIZE_TYPE__ + #elif defined(__cplusplus) + #include + #define SIMDE_ALIGN_SIZE_T_ size_t + #else + #include + #define SIMDE_ALIGN_SIZE_T_ size_t + #endif +#endif + +#if !defined(SIMDE_ALIGN_INTPTR_T_) + #if defined(__INTPTR_TYPE__) + #define SIMDE_ALIGN_INTPTR_T_ __INTPTR_TYPE__ + #elif defined(__PTRDIFF_TYPE__) + #define SIMDE_ALIGN_INTPTR_T_ __PTRDIFF_TYPE__ + #elif defined(__PTRDIFF_T_TYPE__) + #define SIMDE_ALIGN_INTPTR_T_ __PTRDIFF_T_TYPE__ + #elif defined(__cplusplus) + #include + #define SIMDE_ALIGN_INTPTR_T_ ptrdiff_t + #else + #include + #define SIMDE_ALIGN_INTPTR_T_ ptrdiff_t + #endif +#endif + +#if defined(SIMDE_ALIGN_DEBUG) + #if defined(__cplusplus) + #include + #else + #include + #endif +#endif + +/* SIMDE_ALIGN_OF(Type) + * + * The SIMDE_ALIGN_OF macro works like alignof, or _Alignof, or + * __alignof, or __alignof__, or __ALIGNOF__, depending on the compiler. + * It isn't defined everywhere (only when the compiler has some alignof- + * like feature we can use to implement it), but it should work in most + * modern compilers, as well as C11 and C++11. + * + * If we can't find an implementation for SIMDE_ALIGN_OF then the macro + * will not be defined, so if you can handle that situation sensibly + * you may need to sprinkle some ifdefs into your code. + */ +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (0 && HEDLEY_HAS_FEATURE(c_alignof)) + #define SIMDE_ALIGN_OF(Type) _Alignof(Type) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + (0 && HEDLEY_HAS_FEATURE(cxx_alignof)) + #define SIMDE_ALIGN_OF(Type) alignof(Type) +#elif \ + HEDLEY_GCC_VERSION_CHECK(2,95,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,24) || \ + HEDLEY_PGI_VERSION_CHECK(19,10,0) || \ + HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,2) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + defined(__IBM__ALIGNOF__) || \ + defined(__clang__) + #define SIMDE_ALIGN_OF(Type) __alignof__(Type) +#elif \ + HEDLEY_IAR_VERSION_CHECK(8,40,0) + #define SIMDE_ALIGN_OF(Type) __ALIGNOF__(Type) +#elif \ + HEDLEY_MSVC_VERSION_CHECK(19,0,0) + /* Probably goes back much further, but MS takes down their old docs. + * If you can verify that this works in earlier versions please let + * me know! */ + #define SIMDE_ALIGN_OF(Type) __alignof(Type) +#endif + +/* SIMDE_ALIGN_MAXIMUM: + * + * This is the maximum alignment that the compiler supports. You can + * define the value prior to including SIMDe if necessary, but in that + * case *please* submit an issue so we can add the platform to the + * detection code. + * + * Most compilers are okay with types which are aligned beyond what + * they think is the maximum, as long as the alignment is a power + * of two. Older versions of MSVC is the exception, so we need to cap + * the alignment requests at values that the implementation supports. + * + * XL C/C++ will accept values larger than 16 (which is the alignment + * of an AltiVec vector), but will not reliably align to the larger + * value, so so we cap the value at 16 there. + * + * If the compiler accepts any power-of-two value within reason then + * this macro should be left undefined, and the SIMDE_ALIGN_CAP + * macro will just return the value passed to it. */ +#if !defined(SIMDE_ALIGN_MAXIMUM) + #if defined(HEDLEY_MSVC_VERSION) + #if HEDLEY_MSVC_VERSION_CHECK(19, 16, 0) + // Visual studio 2017 and newer does not need a max + #else + #if defined(_M_IX86) || defined(_M_AMD64) + #if HEDLEY_MSVC_VERSION_CHECK(19,14,0) + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 64 + #elif HEDLEY_MSVC_VERSION_CHECK(16,0,0) + /* VS 2010 is really a guess based on Wikipedia; if anyone can + * test with old VS versions I'd really appreciate it. */ + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 32 + #else + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 16 + #endif + #elif defined(_M_ARM) || defined(_M_ARM64) + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 8 + #endif + #endif + #elif defined(HEDLEY_IBM_VERSION) + #define SIMDE_ALIGN_PLATFORM_MAXIMUM 16 + #endif +#endif + +/* You can mostly ignore these; they're intended for internal use. + * If you do need to use them please let me know; if they fulfill + * a common use case I'll probably drop the trailing underscore + * and make them part of the public API. */ +#if defined(SIMDE_ALIGN_PLATFORM_MAXIMUM) + #if SIMDE_ALIGN_PLATFORM_MAXIMUM >= 64 + #define SIMDE_ALIGN_64_ 64 + #define SIMDE_ALIGN_32_ 32 + #define SIMDE_ALIGN_16_ 16 + #define SIMDE_ALIGN_8_ 8 + #elif SIMDE_ALIGN_PLATFORM_MAXIMUM >= 32 + #define SIMDE_ALIGN_64_ 32 + #define SIMDE_ALIGN_32_ 32 + #define SIMDE_ALIGN_16_ 16 + #define SIMDE_ALIGN_8_ 8 + #elif SIMDE_ALIGN_PLATFORM_MAXIMUM >= 16 + #define SIMDE_ALIGN_64_ 16 + #define SIMDE_ALIGN_32_ 16 + #define SIMDE_ALIGN_16_ 16 + #define SIMDE_ALIGN_8_ 8 + #elif SIMDE_ALIGN_PLATFORM_MAXIMUM >= 8 + #define SIMDE_ALIGN_64_ 8 + #define SIMDE_ALIGN_32_ 8 + #define SIMDE_ALIGN_16_ 8 + #define SIMDE_ALIGN_8_ 8 + #else + #error Max alignment expected to be >= 8 + #endif +#else + #define SIMDE_ALIGN_64_ 64 + #define SIMDE_ALIGN_32_ 32 + #define SIMDE_ALIGN_16_ 16 + #define SIMDE_ALIGN_8_ 8 +#endif + +/** + * SIMDE_ALIGN_CAP(Alignment) + * + * Returns the minimum of Alignment or SIMDE_ALIGN_MAXIMUM. + */ +#if defined(SIMDE_ALIGN_MAXIMUM) + #define SIMDE_ALIGN_CAP(Alignment) (((Alignment) < (SIMDE_ALIGN_PLATFORM_MAXIMUM)) ? (Alignment) : (SIMDE_ALIGN_PLATFORM_MAXIMUM)) +#else + #define SIMDE_ALIGN_CAP(Alignment) (Alignment) +#endif + +/* SIMDE_ALIGN_TO(Alignment) + * + * SIMDE_ALIGN_TO is used to declare types or variables. It basically + * maps to the align attribute in most compilers, the align declspec + * in MSVC, or _Alignas/alignas in C11/C++11. + * + * Example: + * + * struct i32x4 { + * SIMDE_ALIGN_TO(16) int32_t values[4]; + * } + * + * Limitations: + * + * MSVC requires that the Alignment parameter be numeric; you can't do + * something like `SIMDE_ALIGN_TO(SIMDE_ALIGN_OF(int))`. This is + * unfortunate because that's really how the LIKE macros are + * implemented, and I am not aware of a way to get anything like this + * to work without using the C11/C++11 keywords. + * + * It also means that we can't use SIMDE_ALIGN_CAP to limit the + * alignment to the value specified, which MSVC also requires, so on + * MSVC you should use the `SIMDE_ALIGN_TO_8/16/32/64` macros instead. + * They work like `SIMDE_ALIGN_TO(SIMDE_ALIGN_CAP(Alignment))` would, + * but should be safe to use on MSVC. + * + * All this is to say that, if you want your code to work on MSVC, you + * should use the SIMDE_ALIGN_TO_8/16/32/64 macros below instead of + * SIMDE_ALIGN_TO(8/16/32/64). + */ +#if \ + HEDLEY_HAS_ATTRIBUTE(aligned) || \ + HEDLEY_GCC_VERSION_CHECK(2,95,0) || \ + HEDLEY_CRAY_VERSION_CHECK(8,4,0) || \ + HEDLEY_IBM_VERSION_CHECK(11,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_PGI_VERSION_CHECK(19,4,0) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,24) || \ + HEDLEY_TI_ARMCL_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL2000_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + HEDLEY_TI_CL430_VERSION_CHECK(16,9,0) || \ + HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,2) + #define SIMDE_ALIGN_TO(Alignment) __attribute__((__aligned__(SIMDE_ALIGN_CAP(Alignment)))) +#elif \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) + #define SIMDE_ALIGN_TO(Alignment) _Alignas(SIMDE_ALIGN_CAP(Alignment)) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) + #define SIMDE_ALIGN_TO(Alignment) alignas(SIMDE_ALIGN_CAP(Alignment)) +#elif \ + defined(HEDLEY_MSVC_VERSION) + #define SIMDE_ALIGN_TO(Alignment) __declspec(align(Alignment)) + /* Unfortunately MSVC can't handle __declspec(align(__alignof(Type))); + * the alignment passed to the declspec has to be an integer. */ + #define SIMDE_ALIGN_OF_UNUSABLE_FOR_LIKE +#endif +#define SIMDE_ALIGN_TO_64 SIMDE_ALIGN_TO(SIMDE_ALIGN_64_) +#define SIMDE_ALIGN_TO_32 SIMDE_ALIGN_TO(SIMDE_ALIGN_32_) +#define SIMDE_ALIGN_TO_16 SIMDE_ALIGN_TO(SIMDE_ALIGN_16_) +#define SIMDE_ALIGN_TO_8 SIMDE_ALIGN_TO(SIMDE_ALIGN_8_) + +/* SIMDE_ALIGN_ASSUME_TO(Pointer, Alignment) + * + * SIMDE_ALIGN_ASSUME_TO is semantically similar to C++20's + * std::assume_aligned, or __builtin_assume_aligned. It tells the + * compiler to assume that the provided pointer is aligned to an + * `Alignment`-byte boundary. + * + * If you define SIMDE_ALIGN_DEBUG prior to including this header then + * SIMDE_ALIGN_ASSUME_TO will turn into a runtime check. We don't + * integrate with NDEBUG in this header, but it may be a good idea to + * put something like this in your code: + * + * #if !defined(NDEBUG) + * #define SIMDE_ALIGN_DEBUG + * #endif + * #include <.../simde-align.h> + */ +#if \ + HEDLEY_HAS_BUILTIN(__builtin_assume_aligned) || \ + HEDLEY_GCC_VERSION_CHECK(4,7,0) + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) \ + HEDLEY_REINTERPRET_CAST(__typeof__(Pointer), __builtin_assume_aligned(HEDLEY_CONST_CAST(void*, HEDLEY_REINTERPRET_CAST(const void*, Pointer)), Alignment)) +#elif HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) (__extension__ ({ \ + __typeof__(v) simde_assume_aligned_t_ = (Pointer); \ + __assume_aligned(simde_assume_aligned_t_, Alignment); \ + simde_assume_aligned_t_; \ + })) +#elif defined(__cplusplus) && (__cplusplus > 201703L) + #include + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) std::assume_aligned(Pointer) +#else + #if defined(__cplusplus) + template HEDLEY_ALWAYS_INLINE static T* simde_align_assume_to_unchecked(T* ptr, const size_t alignment) + #else + HEDLEY_ALWAYS_INLINE static void* simde_align_assume_to_unchecked(void* ptr, const size_t alignment) + #endif + { + HEDLEY_ASSUME((HEDLEY_REINTERPRET_CAST(size_t, (ptr)) % SIMDE_ALIGN_CAP(alignment)) == 0); + return ptr; + } + #if defined(__cplusplus) + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) simde_align_assume_to_unchecked((Pointer), (Alignment)) + #else + #define SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) simde_align_assume_to_unchecked(HEDLEY_CONST_CAST(void*, HEDLEY_REINTERPRET_CAST(const void*, Pointer)), (Alignment)) + #endif +#endif + +#if !defined(SIMDE_ALIGN_DEBUG) + #define SIMDE_ALIGN_ASSUME_TO(Pointer, Alignment) SIMDE_ALIGN_ASSUME_TO_UNCHECKED(Pointer, Alignment) +#else + #include + #if defined(__cplusplus) + template + static HEDLEY_ALWAYS_INLINE + T* + simde_align_assume_to_checked_uncapped(T* ptr, const size_t alignment, const char* file, int line, const char* ptrname) + #else + static HEDLEY_ALWAYS_INLINE + void* + simde_align_assume_to_checked_uncapped(void* ptr, const size_t alignment, const char* file, int line, const char* ptrname) + #endif + { + if (HEDLEY_UNLIKELY((HEDLEY_REINTERPRET_CAST(SIMDE_ALIGN_INTPTR_T_, (ptr)) % HEDLEY_STATIC_CAST(SIMDE_ALIGN_INTPTR_T_, SIMDE_ALIGN_CAP(alignment))) != 0)) { + fprintf(stderr, "%s:%d: alignment check failed for `%s' (%p %% %u == %u)\n", + file, line, ptrname, HEDLEY_REINTERPRET_CAST(const void*, ptr), + HEDLEY_STATIC_CAST(unsigned int, SIMDE_ALIGN_CAP(alignment)), + HEDLEY_STATIC_CAST(unsigned int, HEDLEY_REINTERPRET_CAST(SIMDE_ALIGN_INTPTR_T_, (ptr)) % HEDLEY_STATIC_CAST(SIMDE_ALIGN_INTPTR_T_, SIMDE_ALIGN_CAP(alignment)))); + } + + return ptr; + } + + #if defined(__cplusplus) + #define SIMDE_ALIGN_ASSUME_TO(Pointer, Alignment) simde_align_assume_to_checked_uncapped((Pointer), (Alignment), __FILE__, __LINE__, #Pointer) + #else + #define SIMDE_ALIGN_ASSUME_TO(Pointer, Alignment) simde_align_assume_to_checked_uncapped(HEDLEY_CONST_CAST(void*, HEDLEY_REINTERPRET_CAST(const void*, Pointer)), (Alignment), __FILE__, __LINE__, #Pointer) + #endif +#endif + +/* SIMDE_ALIGN_LIKE(Type) + * SIMDE_ALIGN_LIKE_#(Type) + * + * The SIMDE_ALIGN_LIKE macros are similar to the SIMDE_ALIGN_TO macros + * except instead of an integer they take a type; basically, it's just + * a more convenient way to do something like: + * + * SIMDE_ALIGN_TO(SIMDE_ALIGN_OF(Type)) + * + * The versions with a numeric suffix will fall back on using a numeric + * value in the event we can't use SIMDE_ALIGN_OF(Type). This is + * mainly for MSVC, where __declspec(align()) can't handle anything + * other than hard-coded numeric values. + */ +#if defined(SIMDE_ALIGN_OF) && defined(SIMDE_ALIGN_TO) && !defined(SIMDE_ALIGN_OF_UNUSABLE_FOR_LIKE) + #define SIMDE_ALIGN_LIKE(Type) SIMDE_ALIGN_TO(SIMDE_ALIGN_OF(Type)) + #define SIMDE_ALIGN_LIKE_64(Type) SIMDE_ALIGN_LIKE(Type) + #define SIMDE_ALIGN_LIKE_32(Type) SIMDE_ALIGN_LIKE(Type) + #define SIMDE_ALIGN_LIKE_16(Type) SIMDE_ALIGN_LIKE(Type) + #define SIMDE_ALIGN_LIKE_8(Type) SIMDE_ALIGN_LIKE(Type) +#else + #define SIMDE_ALIGN_LIKE_64(Type) SIMDE_ALIGN_TO_64 + #define SIMDE_ALIGN_LIKE_32(Type) SIMDE_ALIGN_TO_32 + #define SIMDE_ALIGN_LIKE_16(Type) SIMDE_ALIGN_TO_16 + #define SIMDE_ALIGN_LIKE_8(Type) SIMDE_ALIGN_TO_8 +#endif + +/* SIMDE_ALIGN_ASSUME_LIKE(Pointer, Type) + * + * This is similar to SIMDE_ALIGN_ASSUME_TO, except that it takes a + * type instead of a numeric value. */ +#if defined(SIMDE_ALIGN_OF) && defined(SIMDE_ALIGN_ASSUME_TO) + #define SIMDE_ALIGN_ASSUME_LIKE(Pointer, Type) SIMDE_ALIGN_ASSUME_TO(Pointer, SIMDE_ALIGN_OF(Type)) +#endif + +/* SIMDE_ALIGN_CAST(Type, Pointer) + * + * SIMDE_ALIGN_CAST is like C++'s reinterpret_cast, but it will try + * to silence warnings that some compilers may produce if you try + * to assign to a type with increased alignment requirements. + * + * Note that it does *not* actually attempt to tell the compiler that + * the pointer is aligned like the destination should be; that's the + * job of the next macro. This macro is necessary for stupid APIs + * like _mm_loadu_si128 where the input is a __m128i* but the function + * is specifically for data which isn't necessarily aligned to + * _Alignof(__m128i). + */ +#if HEDLEY_HAS_WARNING("-Wcast-align") || defined(__clang__) || HEDLEY_GCC_VERSION_CHECK(3,4,0) + #define SIMDE_ALIGN_CAST(Type, Pointer) (__extension__({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("GCC diagnostic ignored \"-Wcast-align\"") \ + Type simde_r_ = HEDLEY_REINTERPRET_CAST(Type, Pointer); \ + HEDLEY_DIAGNOSTIC_POP \ + simde_r_; \ + })) +#else + #define SIMDE_ALIGN_CAST(Type, Pointer) HEDLEY_REINTERPRET_CAST(Type, Pointer) +#endif + +/* SIMDE_ALIGN_ASSUME_CAST(Type, Pointer) + * + * This is sort of like a combination of a reinterpret_cast and a + * SIMDE_ALIGN_ASSUME_LIKE. It uses SIMDE_ALIGN_ASSUME_LIKE to tell + * the compiler that the pointer is aligned like the specified type + * and casts the pointer to the specified type while suppressing any + * warnings from the compiler about casting to a type with greater + * alignment requirements. + */ +#define SIMDE_ALIGN_ASSUME_CAST(Type, Pointer) SIMDE_ALIGN_ASSUME_LIKE(SIMDE_ALIGN_CAST(Type, Pointer), Type) + +#endif /* !defined(SIMDE_ALIGN_H) */ +/* :: End simde/simde-align.h :: */ + +/* In some situations, SIMDe has to make large performance sacrifices + * for small increases in how faithfully it reproduces an API, but + * only a relatively small number of users will actually need the API + * to be completely accurate. The SIMDE_FAST_* options can be used to + * disable these trade-offs. + * + * They can be enabled by passing -DSIMDE_FAST_MATH to the compiler, or + * the individual defines (e.g., -DSIMDE_FAST_NANS) if you only want to + * enable some optimizations. Using -ffast-math and/or + * -ffinite-math-only will also enable the relevant options. If you + * don't want that you can pass -DSIMDE_NO_FAST_* to disable them. */ + +/* Most programs avoid NaNs by never passing values which can result in + * a NaN; for example, if you only pass non-negative values to the sqrt + * functions, it won't generate a NaN. On some platforms, similar + * functions handle NaNs differently; for example, the _mm_min_ps SSE + * function will return 0.0 if you pass it (0.0, NaN), but the NEON + * vminq_f32 function will return NaN. Making them behave like one + * another is expensive; it requires generating a mask of all lanes + * with NaNs, then performing the operation (e.g., vminq_f32), then + * blending together the result with another vector using the mask. + * + * If you don't want SIMDe to worry about the differences between how + * NaNs are handled on the two platforms, define this (or pass + * -ffinite-math-only) */ +#if !defined(SIMDE_FAST_MATH) && !defined(SIMDE_NO_FAST_MATH) && defined(__FAST_MATH__) + #define SIMDE_FAST_MATH +#endif + +#if !defined(SIMDE_FAST_NANS) && !defined(SIMDE_NO_FAST_NANS) + #if defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_NANS + #elif defined(__FINITE_MATH_ONLY__) + #if __FINITE_MATH_ONLY__ + #define SIMDE_FAST_NANS + #endif + #endif +#endif + +/* Many functions are defined as using the current rounding mode + * (i.e., the SIMD version of fegetround()) when converting to + * an integer. For example, _mm_cvtpd_epi32. Unfortunately, + * on some platforms (such as ARMv8+ where round-to-nearest is + * always used, regardless of the FPSCR register) this means we + * have to first query the current rounding mode, then choose + * the proper function (rounnd + , ceil, floor, etc.) */ +#if !defined(SIMDE_FAST_ROUND_MODE) && !defined(SIMDE_NO_FAST_ROUND_MODE) && defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_ROUND_MODE +#endif + +/* This controls how ties are rounded. For example, does 10.5 round to + * 10 or 11? IEEE 754 specifies round-towards-even, but ARMv7 (for + * example) doesn't support it and it must be emulated (which is rather + * slow). If you're okay with just using the default for whatever arch + * you're on, you should definitely define this. + * + * Note that we don't use this macro to avoid correct implementations + * in functions which are explicitly about rounding (such as vrnd* on + * NEON, _mm_round_* on x86, etc.); it is only used for code where + * rounding is a component in another function, and even then it isn't + * usually a problem since such functions will use the current rounding + * mode. */ +#if !defined(SIMDE_FAST_ROUND_TIES) && !defined(SIMDE_NO_FAST_ROUND_TIES) && defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_ROUND_TIES +#endif + +/* For functions which convert from one type to another (mostly from + * floating point to integer types), sometimes we need to do a range + * check and potentially return a different result if the value + * falls outside that range. Skipping this check can provide a + * performance boost, at the expense of faithfulness to the API we're + * emulating. */ +#if !defined(SIMDE_FAST_CONVERSION_RANGE) && !defined(SIMDE_NO_FAST_CONVERSION_RANGE) && defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_CONVERSION_RANGE +#endif + +/* Due to differences across platforms, sometimes it can be much + * faster for us to allow spurious floating point exceptions, + * or to no generate them when we should. */ +#if !defined(SIMDE_FAST_EXCEPTIONS) && !defined(SIMDE_NO_FAST_EXCEPTIONS) && defined(SIMDE_FAST_MATH) + #define SIMDE_FAST_EXCEPTIONS +#endif + +#if \ + HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define SIMDE_CHECK_CONSTANT_(expr) (__builtin_constant_p(expr)) +#elif defined(__cplusplus) && (__cplusplus > 201703L) + #include + #define SIMDE_CHECK_CONSTANT_(expr) (std::is_constant_evaluated()) +#endif + +#if !defined(SIMDE_NO_CHECK_IMMEDIATE_CONSTANT) + #if defined(SIMDE_CHECK_CONSTANT_) && \ + SIMDE_DETECT_CLANG_VERSION_CHECK(9,0,0) && \ + (!defined(__apple_build_version__) || ((__apple_build_version__ < 11000000) || (__apple_build_version__ >= 12000000))) + #define SIMDE_REQUIRE_CONSTANT(arg) HEDLEY_REQUIRE_MSG(SIMDE_CHECK_CONSTANT_(arg), "`" #arg "' must be constant") + #else + #define SIMDE_REQUIRE_CONSTANT(arg) + #endif +#else + #define SIMDE_REQUIRE_CONSTANT(arg) +#endif + +#define SIMDE_REQUIRE_RANGE(arg, min, max) \ + HEDLEY_REQUIRE_MSG((((arg) >= (min)) && ((arg) <= (max))), "'" #arg "' must be in [" #min ", " #max "]") + +#define SIMDE_REQUIRE_CONSTANT_RANGE(arg, min, max) \ + SIMDE_REQUIRE_CONSTANT(arg) \ + SIMDE_REQUIRE_RANGE(arg, min, max) + +/* A copy of HEDLEY_STATIC_ASSERT, except we don't define an empty + * fallback if we can't find an implementation; instead we have to + * check if SIMDE_STATIC_ASSERT is defined before using it. */ +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + HEDLEY_HAS_FEATURE(c_static_assert) || \ + HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) + /* Sometimes _Static_assert is defined (in cdefs.h) using a symbol which + * starts with a double-underscore. This is a system header so we have no + * control over it, but since it's a macro it will emit a diagnostic which + * prevents compilation with -Werror. */ + #if HEDLEY_HAS_WARNING("-Wreserved-identifier") + #define SIMDE_STATIC_ASSERT(expr, message) (__extension__({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wreserved-identifier\"") \ + _Static_assert(expr, message); \ + HEDLEY_DIAGNOSTIC_POP \ + })) + #else + #define SIMDE_STATIC_ASSERT(expr, message) _Static_assert(expr, message) + #endif +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + HEDLEY_MSVC_VERSION_CHECK(16,0,0) + #define SIMDE_STATIC_ASSERT(expr, message) HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#endif + +/* Statement exprs */ +#if \ + HEDLEY_GNUC_VERSION_CHECK(2,95,0) || \ + HEDLEY_TINYC_VERSION_CHECK(0,9,26) || \ + HEDLEY_INTEL_VERSION_CHECK(9,0,0) || \ + HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + HEDLEY_SUNPRO_VERSION_CHECK(5,12,0) || \ + HEDLEY_IBM_VERSION_CHECK(11,1,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define SIMDE_STATEMENT_EXPR_(expr) (__extension__ expr) +#endif + +/* This is just a convenience macro to make it easy to call a single + * function with a specific diagnostic disabled. */ +#if defined(SIMDE_STATEMENT_EXPR_) + #define SIMDE_DISABLE_DIAGNOSTIC_EXPR_(diagnostic, expr) \ + SIMDE_STATEMENT_EXPR_(({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + diagnostic \ + (expr); \ + HEDLEY_DIAGNOSTIC_POP \ + })) +#endif + +#if defined(SIMDE_CHECK_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define SIMDE_ASSERT_CONSTANT_(v) SIMDE_STATIC_ASSERT(SIMDE_CHECK_CONSTANT_(v), #v " must be constant.") +#endif + +#if \ + (HEDLEY_HAS_ATTRIBUTE(may_alias) && !defined(HEDLEY_SUNPRO_VERSION)) || \ + HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) +# define SIMDE_MAY_ALIAS __attribute__((__may_alias__)) +#else +# define SIMDE_MAY_ALIAS +#endif + +/* Lots of compilers support GCC-style vector extensions, but many + don't support all the features. Define different macros depending + on support for + + * SIMDE_VECTOR - Declaring a vector. + * SIMDE_VECTOR_OPS - basic operations (binary and unary). + * SIMDE_VECTOR_NEGATE - negating a vector + * SIMDE_VECTOR_SCALAR - For binary operators, the second argument + can be a scalar, in which case the result is as if that scalar + had been broadcast to all lanes of a vector. + * SIMDE_VECTOR_SUBSCRIPT - Supports array subscript notation for + extracting/inserting a single element.= + + SIMDE_VECTOR can be assumed if any others are defined, the + others are independent. */ +#if !defined(SIMDE_NO_VECTOR) +# if \ + HEDLEY_GCC_VERSION_CHECK(4,8,0) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# define SIMDE_VECTOR_OPS +# define SIMDE_VECTOR_NEGATE +# define SIMDE_VECTOR_SCALAR +# define SIMDE_VECTOR_SUBSCRIPT +# elif HEDLEY_INTEL_VERSION_CHECK(16,0,0) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# define SIMDE_VECTOR_OPS +# define SIMDE_VECTOR_NEGATE +/* ICC only supports SIMDE_VECTOR_SCALAR for constants */ +# define SIMDE_VECTOR_SUBSCRIPT +# elif \ + HEDLEY_GCC_VERSION_CHECK(4,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# define SIMDE_VECTOR_OPS +# elif HEDLEY_SUNPRO_VERSION_CHECK(5,12,0) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# elif HEDLEY_HAS_ATTRIBUTE(vector_size) +# define SIMDE_VECTOR(size) __attribute__((__vector_size__(size))) +# define SIMDE_VECTOR_OPS +# define SIMDE_VECTOR_NEGATE +# define SIMDE_VECTOR_SUBSCRIPT +# if SIMDE_DETECT_CLANG_VERSION_CHECK(5,0,0) +# define SIMDE_VECTOR_SCALAR +# endif +# endif + +/* GCC and clang have built-in functions to handle shuffling and + converting of vectors, but the implementations are slightly + different. This macro is just an abstraction over them. Note that + elem_size is in bits but vec_size is in bytes. */ +# if !defined(SIMDE_NO_SHUFFLE_VECTOR) && defined(SIMDE_VECTOR_SUBSCRIPT) + HEDLEY_DIAGNOSTIC_PUSH + /* We don't care about -Wvariadic-macros; all compilers that support + * shufflevector/shuffle support them. */ +# if HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") +# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +# endif +# if HEDLEY_HAS_WARNING("-Wvariadic-macros") || HEDLEY_GCC_VERSION_CHECK(4,0,0) +# pragma GCC diagnostic ignored "-Wvariadic-macros" +# endif + +# if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) +# define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...) __builtin_shufflevector(a, b, __VA_ARGS__) +# elif HEDLEY_GCC_HAS_BUILTIN(__builtin_shuffle,4,7,0) && !defined(__INTEL_COMPILER) +# define SIMDE_SHUFFLE_VECTOR_(elem_size, vec_size, a, b, ...) (__extension__ ({ \ + int##elem_size##_t SIMDE_VECTOR(vec_size) simde_shuffle_ = { __VA_ARGS__ }; \ + __builtin_shuffle(a, b, simde_shuffle_); \ + })) +# endif + HEDLEY_DIAGNOSTIC_POP +# endif + +/* TODO: this actually works on XL C/C++ without SIMDE_VECTOR_SUBSCRIPT + but the code needs to be refactored a bit to take advantage. */ +# if !defined(SIMDE_NO_CONVERT_VECTOR) && defined(SIMDE_VECTOR_SUBSCRIPT) +# if HEDLEY_HAS_BUILTIN(__builtin_convertvector) || HEDLEY_GCC_VERSION_CHECK(9,0,0) +# if HEDLEY_GCC_VERSION_CHECK(9,0,0) && !HEDLEY_GCC_VERSION_CHECK(9,3,0) + /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93557 */ +# define SIMDE_CONVERT_VECTOR_(to, from) ((to) = (__extension__({ \ + __typeof__(from) from_ = (from); \ + ((void) from_); \ + __builtin_convertvector(from_, __typeof__(to)); \ + }))) +# else +# define SIMDE_CONVERT_VECTOR_(to, from) ((to) = __builtin_convertvector((from), __typeof__(to))) +# endif +# endif +# endif +#endif + +/* Since we currently require SUBSCRIPT before using a vector in a + union, we define these as dependencies of SUBSCRIPT. They are + likely to disappear in the future, once SIMDe learns how to make + use of vectors without using the union members. Do not use them + in your code unless you're okay with it breaking when SIMDe + changes. */ +#if defined(SIMDE_VECTOR_SUBSCRIPT) +# if defined(SIMDE_VECTOR_OPS) +# define SIMDE_VECTOR_SUBSCRIPT_OPS +# endif +# if defined(SIMDE_VECTOR_SCALAR) +# define SIMDE_VECTOR_SUBSCRIPT_SCALAR +# endif +#endif + +#if !defined(SIMDE_DISABLE_OPENMP) + #if !defined(SIMDE_ENABLE_OPENMP) && ((defined(_OPENMP) && (_OPENMP >= 201307L)) || (defined(_OPENMP_SIMD) && (_OPENMP_SIMD >= 201307L))) || defined(HEDLEY_MCST_LCC_VERSION) + #define SIMDE_ENABLE_OPENMP + #endif +#endif + +#if !defined(SIMDE_ENABLE_CILKPLUS) && (defined(__cilk) || defined(HEDLEY_INTEL_VERSION)) +# define SIMDE_ENABLE_CILKPLUS +#endif + +#if defined(SIMDE_ENABLE_OPENMP) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(omp simd) +# define SIMDE_VECTORIZE_SAFELEN(l) HEDLEY_PRAGMA(omp simd safelen(l)) +# if defined(__clang__) +# define SIMDE_VECTORIZE_REDUCTION(r) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wsign-conversion\"") \ + HEDLEY_PRAGMA(omp simd reduction(r)) \ + HEDLEY_DIAGNOSTIC_POP +# else +# define SIMDE_VECTORIZE_REDUCTION(r) HEDLEY_PRAGMA(omp simd reduction(r)) +# endif +# if !defined(HEDLEY_MCST_LCC_VERSION) +# define SIMDE_VECTORIZE_ALIGNED(a) HEDLEY_PRAGMA(omp simd aligned(a)) +# else +# define SIMDE_VECTORIZE_ALIGNED(a) HEDLEY_PRAGMA(omp simd) +# endif +#elif defined(SIMDE_ENABLE_CILKPLUS) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(simd) +# define SIMDE_VECTORIZE_SAFELEN(l) HEDLEY_PRAGMA(simd vectorlength(l)) +# define SIMDE_VECTORIZE_REDUCTION(r) HEDLEY_PRAGMA(simd reduction(r)) +# define SIMDE_VECTORIZE_ALIGNED(a) HEDLEY_PRAGMA(simd aligned(a)) +#elif defined(__clang__) && !defined(HEDLEY_IBM_VERSION) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(clang loop vectorize(enable)) +# define SIMDE_VECTORIZE_SAFELEN(l) HEDLEY_PRAGMA(clang loop vectorize_width(l)) +# define SIMDE_VECTORIZE_REDUCTION(r) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_ALIGNED(a) +#elif HEDLEY_GCC_VERSION_CHECK(4,9,0) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(GCC ivdep) +# define SIMDE_VECTORIZE_SAFELEN(l) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_REDUCTION(r) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_ALIGNED(a) +#elif HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define SIMDE_VECTORIZE HEDLEY_PRAGMA(_CRI ivdep) +# define SIMDE_VECTORIZE_SAFELEN(l) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_REDUCTION(r) SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_ALIGNED(a) +#else +# define SIMDE_VECTORIZE +# define SIMDE_VECTORIZE_SAFELEN(l) +# define SIMDE_VECTORIZE_REDUCTION(r) +# define SIMDE_VECTORIZE_ALIGNED(a) +#endif + +#define SIMDE_MASK_NZ_(v, mask) (((v) & (mask)) | !((v) & (mask))) + +/* Intended for checking coverage, you should never use this in + production. */ +#if defined(SIMDE_NO_INLINE) +# define SIMDE_FUNCTION_ATTRIBUTES HEDLEY_NEVER_INLINE static +#else +# define SIMDE_FUNCTION_ATTRIBUTES HEDLEY_ALWAYS_INLINE static +#endif + +#if defined(SIMDE_NO_INLINE) +# define SIMDE_HUGE_FUNCTION_ATTRIBUTES HEDLEY_NEVER_INLINE static +#elif defined(SIMDE_CONSTRAINED_COMPILATION) +# define SIMDE_HUGE_FUNCTION_ATTRIBUTES static +#else +# define SIMDE_HUGE_FUNCTION_ATTRIBUTES HEDLEY_ALWAYS_INLINE static +#endif + +#if \ + HEDLEY_HAS_ATTRIBUTE(unused) || \ + HEDLEY_GCC_VERSION_CHECK(2,95,0) +# define SIMDE_FUNCTION_POSSIBLY_UNUSED_ __attribute__((__unused__)) +#else +# define SIMDE_FUNCTION_POSSIBLY_UNUSED_ +#endif + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ + +#if defined(_MSC_VER) +# define SIMDE_BEGIN_DECLS_ HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(disable:4996 4204)) HEDLEY_BEGIN_C_DECLS +# define SIMDE_END_DECLS_ HEDLEY_DIAGNOSTIC_POP HEDLEY_END_C_DECLS +#else +# define SIMDE_BEGIN_DECLS_ \ + HEDLEY_DIAGNOSTIC_PUSH \ + SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ \ + HEDLEY_BEGIN_C_DECLS +# define SIMDE_END_DECLS_ \ + HEDLEY_END_C_DECLS \ + HEDLEY_DIAGNOSTIC_POP +#endif + +#if defined(__SIZEOF_INT128__) +# define SIMDE_HAVE_INT128_ +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DIAGNOSTIC_DISABLE_PEDANTIC_ +typedef __int128 simde_int128; +typedef unsigned __int128 simde_uint128; +HEDLEY_DIAGNOSTIC_POP +#endif + +#if !defined(SIMDE_ENDIAN_LITTLE) +# define SIMDE_ENDIAN_LITTLE 1234 +#endif +#if !defined(SIMDE_ENDIAN_BIG) +# define SIMDE_ENDIAN_BIG 4321 +#endif + +#if !defined(SIMDE_ENDIAN_ORDER) +/* GCC (and compilers masquerading as GCC) define __BYTE_ORDER__. */ +# if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +/* TI defines _BIG_ENDIAN or _LITTLE_ENDIAN */ +# elif defined(_BIG_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# elif defined(_LITTLE_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +/* We know the endianness of some common architectures. Common + * architectures not listed (ARM, POWER, MIPS, etc.) here are + * bi-endian. */ +# elif defined(__amd64) || defined(_M_X64) || defined(__i386) || defined(_M_IX86) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__s390x__) || defined(__zarch__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +/* Looks like we'll have to rely on the platform. If we're missing a + * platform, please let us know. */ +# elif defined(_WIN32) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(sun) || defined(__sun) /* Solaris */ +# include +# if defined(_LITTLE_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(_BIG_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# endif +# elif defined(__APPLE__) +# include +# if defined(__LITTLE_ENDIAN__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__BIG_ENDIAN__) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# endif +# elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__) || defined(BSD) +# include +# if defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# endif +# elif defined(__linux__) || defined(__linux) || defined(__gnu_linux__) +# include +# if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_LITTLE +# elif defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN) +# define SIMDE_ENDIAN_ORDER SIMDE_ENDIAN_BIG +# endif +# endif +#endif + +#if \ + HEDLEY_HAS_BUILTIN(__builtin_bswap64) || \ + HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define simde_bswap64(v) __builtin_bswap64(v) +#elif HEDLEY_MSVC_VERSION_CHECK(13,10,0) + #define simde_bswap64(v) _byteswap_uint64(v) +#else + SIMDE_FUNCTION_ATTRIBUTES + uint64_t + simde_bswap64(uint64_t v) { + return + ((v & (((uint64_t) 0xff) << 56)) >> 56) | + ((v & (((uint64_t) 0xff) << 48)) >> 40) | + ((v & (((uint64_t) 0xff) << 40)) >> 24) | + ((v & (((uint64_t) 0xff) << 32)) >> 8) | + ((v & (((uint64_t) 0xff) << 24)) << 8) | + ((v & (((uint64_t) 0xff) << 16)) << 24) | + ((v & (((uint64_t) 0xff) << 8)) << 40) | + ((v & (((uint64_t) 0xff) )) << 56); + } +#endif + +#if !defined(SIMDE_ENDIAN_ORDER) +# error Unknown byte order; please file a bug +#else +# if SIMDE_ENDIAN_ORDER == SIMDE_ENDIAN_LITTLE +# define simde_endian_bswap64_be(value) simde_bswap64(value) +# define simde_endian_bswap64_le(value) (value) +# elif SIMDE_ENDIAN_ORDER == SIMDE_ENDIAN_BIG +# define simde_endian_bswap64_be(value) (value) +# define simde_endian_bswap64_le(value) simde_bswap64(value) +# endif +#endif + +/* TODO: we should at least make an attempt to detect the correct + types for simde_float32/float64 instead of just assuming float and + double. */ + +#if !defined(SIMDE_FLOAT32_TYPE) +# define SIMDE_FLOAT32_TYPE float +# define SIMDE_FLOAT32_C(value) value##f +#else +# define SIMDE_FLOAT32_C(value) ((SIMDE_FLOAT32_TYPE) value) +#endif +typedef SIMDE_FLOAT32_TYPE simde_float32; + +#if !defined(SIMDE_FLOAT64_TYPE) +# define SIMDE_FLOAT64_TYPE double +# define SIMDE_FLOAT64_C(value) value +#else +# define SIMDE_FLOAT64_C(value) ((SIMDE_FLOAT64_TYPE) value) +#endif +typedef SIMDE_FLOAT64_TYPE simde_float64; + +#if defined(SIMDE_POLY8_TYPE) +# undef SIMDE_POLY8_TYPE +#endif +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) +# define SIMDE_POLY8_TYPE poly8_t +# define SIMDE_POLY8_C(value) (HEDLEY_STATIC_CAST(poly8_t, value)) +#else +# define SIMDE_POLY8_TYPE uint8_t +# define SIMDE_POLY8_C(value) (HEDLEY_STATIC_CAST(uint8_t, value)) +#endif +typedef SIMDE_POLY8_TYPE simde_poly8; + +#if defined(SIMDE_POLY16_TYPE) +# undef SIMDE_POLY16_TYPE +#endif +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) +# define SIMDE_POLY16_TYPE poly16_t +# define SIMDE_POLY16_C(value) (HEDLEY_STATIC_CAST(poly16_t, value)) +#else +# define SIMDE_POLY16_TYPE uint16_t +# define SIMDE_POLY16_C(value) (HEDLEY_STATIC_CAST(uint16_t, value)) +#endif +typedef SIMDE_POLY16_TYPE simde_poly16; + +#if defined(SIMDE_POLY64_TYPE) +# undef SIMDE_POLY64_TYPE +#endif +#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) +# define SIMDE_POLY64_TYPE poly64_t +# define SIMDE_POLY64_C(value) (HEDLEY_STATIC_CAST(poly64_t, value ## ull)) +#else +# define SIMDE_POLY64_TYPE uint64_t +# define SIMDE_POLY64_C(value) value ## ull +#endif +typedef SIMDE_POLY64_TYPE simde_poly64; + +#if defined(SIMDE_POLY128_TYPE) +# undef SIMDE_POLY128_TYPE +#endif +#if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && defined(SIMDE_ARCH_ARM_CRYPTO) +# define SIMDE_POLY128_TYPE poly128_t +# define SIMDE_POLY128_C(value) value +#elif defined(__SIZEOF_INT128__) +# define SIMDE_POLY128_TYPE __int128 +# define SIMDE_POLY128_C(value) (HEDLEY_STATIC_CAST(__int128, value)) +#else +# define SIMDE_POLY128_TYPE uint64_t +# define SIMDE_TARGET_NOT_SUPPORT_INT128_TYPE 1 +#endif +typedef SIMDE_POLY128_TYPE simde_poly128; + +#if defined(__cplusplus) + typedef bool simde_bool; +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) + typedef _Bool simde_bool; +#elif defined(bool) + typedef bool simde_bool; +#else + #include + typedef bool simde_bool; +#endif + +#if HEDLEY_HAS_WARNING("-Wbad-function-cast") +# define SIMDE_CONVERT_FTOI(T,v) \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wbad-function-cast\"") \ + HEDLEY_STATIC_CAST(T, (v)) \ + HEDLEY_DIAGNOSTIC_POP +#else +# define SIMDE_CONVERT_FTOI(T,v) ((T) (v)) +#endif + +/* TODO: detect compilers which support this outside of C11 mode */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) + #define SIMDE_CHECKED_REINTERPRET_CAST(to, from, value) _Generic((value), to: (value), default: (_Generic((value), from: ((to) (value))))) + #define SIMDE_CHECKED_STATIC_CAST(to, from, value) _Generic((value), to: (value), default: (_Generic((value), from: ((to) (value))))) +#else + #define SIMDE_CHECKED_REINTERPRET_CAST(to, from, value) HEDLEY_REINTERPRET_CAST(to, value) + #define SIMDE_CHECKED_STATIC_CAST(to, from, value) HEDLEY_STATIC_CAST(to, value) +#endif + +#if HEDLEY_HAS_WARNING("-Wfloat-equal") +# define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL _Pragma("clang diagnostic ignored \"-Wfloat-equal\"") +#elif HEDLEY_GCC_VERSION_CHECK(3,0,0) +# define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL _Pragma("GCC diagnostic ignored \"-Wfloat-equal\"") +#else +# define SIMDE_DIAGNOSTIC_DISABLE_FLOAT_EQUAL +#endif + +/* Some functions can trade accuracy for speed. For those functions + you can control the trade-off using this macro. Possible values: + + 0: prefer speed + 1: reasonable trade-offs + 2: prefer accuracy */ +#if !defined(SIMDE_ACCURACY_PREFERENCE) +# define SIMDE_ACCURACY_PREFERENCE 1 +#endif + +#if defined(__STDC_HOSTED__) +# define SIMDE_STDC_HOSTED __STDC_HOSTED__ +#else +# if \ + defined(HEDLEY_PGI_VERSION) || \ + defined(HEDLEY_MSVC_VERSION) +# define SIMDE_STDC_HOSTED 1 +# else +# define SIMDE_STDC_HOSTED 0 +# endif +#endif + +/* Try to deal with environments without a standard library. */ +#if !defined(simde_memcpy) + #if HEDLEY_HAS_BUILTIN(__builtin_memcpy) + #define simde_memcpy(dest, src, n) __builtin_memcpy(dest, src, n) + #endif +#endif +#if !defined(simde_memset) + #if HEDLEY_HAS_BUILTIN(__builtin_memset) + #define simde_memset(s, c, n) __builtin_memset(s, c, n) + #endif +#endif +#if !defined(simde_memcmp) + #if HEDLEY_HAS_BUILTIN(__builtin_memcmp) + #define simde_memcmp(s1, s2, n) __builtin_memcmp(s1, s2, n) + #endif +#endif + +#if !defined(simde_memcpy) || !defined(simde_memset) || !defined(simde_memcmp) + #if !defined(SIMDE_NO_STRING_H) + #if defined(__has_include) + #if !__has_include() + #define SIMDE_NO_STRING_H + #endif + #elif (SIMDE_STDC_HOSTED == 0) + #define SIMDE_NO_STRING_H + #endif + #endif + + #if !defined(SIMDE_NO_STRING_H) + #include + #if !defined(simde_memcpy) + #define simde_memcpy(dest, src, n) memcpy(dest, src, n) + #endif + #if !defined(simde_memset) + #define simde_memset(s, c, n) memset(s, c, n) + #endif + #if !defined(simde_memcmp) + #define simde_memcmp(s1, s2, n) memcmp(s1, s2, n) + #endif + #else + /* These are meant to be portable, not fast. If you're hitting them you + * should think about providing your own (by defining the simde_memcpy + * macro prior to including any SIMDe files) or submitting a patch to + * SIMDe so we can detect your system-provided memcpy/memset, like by + * adding your compiler to the checks for __builtin_memcpy and/or + * __builtin_memset. */ + #if !defined(simde_memcpy) + SIMDE_FUNCTION_ATTRIBUTES + void + simde_memcpy_(void* dest, const void* src, size_t len) { + char* dest_ = HEDLEY_STATIC_CAST(char*, dest); + char* src_ = HEDLEY_STATIC_CAST(const char*, src); + for (size_t i = 0 ; i < len ; i++) { + dest_[i] = src_[i]; + } + } + #define simde_memcpy(dest, src, n) simde_memcpy_(dest, src, n) + #endif + + #if !defined(simde_memset) + SIMDE_FUNCTION_ATTRIBUTES + void + simde_memset_(void* s, int c, size_t len) { + char* s_ = HEDLEY_STATIC_CAST(char*, s); + char c_ = HEDLEY_STATIC_CAST(char, c); + for (size_t i = 0 ; i < len ; i++) { + s_[i] = c_[i]; + } + } + #define simde_memset(s, c, n) simde_memset_(s, c, n) + #endif + + #if !defined(simde_memcmp) + SIMDE_FUCTION_ATTRIBUTES + int + simde_memcmp_(const void *s1, const void *s2, size_t n) { + unsigned char* s1_ = HEDLEY_STATIC_CAST(unsigned char*, s1); + unsigned char* s2_ = HEDLEY_STATIC_CAST(unsigned char*, s2); + for (size_t i = 0 ; i < len ; i++) { + if (s1_[i] != s2_[i]) { + return (int) (s1_[i] - s2_[i]); + } + } + return 0; + } + #define simde_memcmp(s1, s2, n) simde_memcmp_(s1, s2, n) + #endif + #endif +#endif + +/*** Functions that quiet a signaling NaN ***/ + +static HEDLEY_INLINE +double +simde_math_quiet(double x) { + uint64_t tmp, mask; + if (!simde_math_isnan(x)) { + return x; + } + simde_memcpy(&tmp, &x, 8); + mask = 0x7ff80000; + mask <<= 32; + tmp |= mask; + simde_memcpy(&x, &tmp, 8); + return x; +} + +static HEDLEY_INLINE +float +simde_math_quietf(float x) { + uint32_t tmp; + if (!simde_math_isnanf(x)) { + return x; + } + simde_memcpy(&tmp, &x, 4); + tmp |= 0x7fc00000lu; + simde_memcpy(&x, &tmp, 4); + return x; +} + +#if defined(FE_ALL_EXCEPT) + #define SIMDE_HAVE_FENV_H +#elif defined(__has_include) + #if __has_include() + #include + #define SIMDE_HAVE_FENV_H + #endif +#elif SIMDE_STDC_HOSTED == 1 + #include + #define SIMDE_HAVE_FENV_H +#endif + +#if defined(EXIT_FAILURE) + #define SIMDE_HAVE_STDLIB_H +#elif defined(__has_include) + #if __has_include() + #include + #define SIMDE_HAVE_STDLIB_H + #endif +#elif SIMDE_STDC_HOSTED == 1 + #include + #define SIMDE_HAVE_STDLIB_H +#endif + +#if defined(__has_include) +# if defined(__cplusplus) && (__cplusplus >= 201103L) && __has_include() +# include +# elif __has_include() +# include +# endif +# if __has_include() +# include +# endif +#elif SIMDE_STDC_HOSTED == 1 +# include +# include +#endif + +#define SIMDE_DEFINE_CONVERSION_FUNCTION_(Name, T_To, T_From) \ + static HEDLEY_ALWAYS_INLINE HEDLEY_CONST SIMDE_FUNCTION_POSSIBLY_UNUSED_ \ + T_To \ + Name (T_From value) { \ + T_To r; \ + simde_memcpy(&r, &value, sizeof(r)); \ + return r; \ + } + +SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_float32_as_uint32, uint32_t, simde_float32) +SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_uint32_as_float32, simde_float32, uint32_t) +SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_float64_as_uint64, uint64_t, simde_float64) +SIMDE_DEFINE_CONVERSION_FUNCTION_(simde_uint64_as_float64, simde_float64, uint64_t) + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/check.h :: */ +/* Check (assertions) + * Portable Snippets - https://github.com/nemequ/portable-snippets + * Created by Evan Nemerson + * + * To the extent possible under law, the authors have waived all + * copyright and related or neighboring rights to this code. For + * details, see the Creative Commons Zero 1.0 Universal license at + * https://creativecommons.org/publicdomain/zero/1.0/ + * + * SPDX-License-Identifier: CC0-1.0 + */ + +#if !defined(SIMDE_CHECK_H) +#define SIMDE_CHECK_H + +#if !defined(SIMDE_NDEBUG) && !defined(SIMDE_DEBUG) +# define SIMDE_NDEBUG 1 +#endif + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +#include + +#if !defined(_WIN32) +# define SIMDE_SIZE_MODIFIER "z" +# define SIMDE_CHAR_MODIFIER "hh" +# define SIMDE_SHORT_MODIFIER "h" +#else +# if defined(_M_X64) || defined(__amd64__) +# define SIMDE_SIZE_MODIFIER "I64" +# else +# define SIMDE_SIZE_MODIFIER "" +# endif +# define SIMDE_CHAR_MODIFIER "" +# define SIMDE_SHORT_MODIFIER "" +#endif + +#if defined(_MSC_VER) && (_MSC_VER >= 1500) +# define SIMDE_PUSH_DISABLE_MSVC_C4127_ __pragma(warning(push)) __pragma(warning(disable:4127)) +# define SIMDE_POP_DISABLE_MSVC_C4127_ __pragma(warning(pop)) +#else +# define SIMDE_PUSH_DISABLE_MSVC_C4127_ +# define SIMDE_POP_DISABLE_MSVC_C4127_ +#endif + +#if !defined(simde_errorf) +# if defined(__has_include) +# if __has_include() +# include +# endif +# elif defined(SIMDE_STDC_HOSTED) +# if SIMDE_STDC_HOSTED == 1 +# include +# endif +# elif defined(__STDC_HOSTED__) +# if __STDC_HOSTETD__ == 1 +# include +# endif +# endif + +/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */ +/* 71fd833d9666141edcd1d3c109a80e228303d8d7 */ +/* :: Begin simde/debug-trap.h :: */ +/* Debugging assertions and traps + * Portable Snippets - https://github.com/nemequ/portable-snippets + * Created by Evan Nemerson + * + * To the extent possible under law, the authors have waived all + * copyright and related or neighboring rights to this code. For + * details, see the Creative Commons Zero 1.0 Universal license at + * https://creativecommons.org/publicdomain/zero/1.0/ + * + * SPDX-License-Identifier: CC0-1.0 + */ + +#if !defined(SIMDE_DEBUG_TRAP_H) +#define SIMDE_DEBUG_TRAP_H + +#if !defined(SIMDE_NDEBUG) && defined(NDEBUG) && !defined(SIMDE_DEBUG) +# define SIMDE_NDEBUG 1 +#endif + +#if defined(__has_builtin) && !defined(__ibmxl__) +# if __has_builtin(__builtin_debugtrap) +# define simde_trap() __builtin_debugtrap() +# elif __has_builtin(__debugbreak) +# define simde_trap() __debugbreak() +# endif +#endif +#if !defined(simde_trap) +# if defined(_MSC_VER) || defined(__INTEL_COMPILER) +# define simde_trap() __debugbreak() +# elif defined(__ARMCC_VERSION) +# define simde_trap() __breakpoint(42) +# elif defined(__ibmxl__) || defined(__xlC__) +# include +# define simde_trap() __trap(42) +# elif defined(__DMC__) && defined(_M_IX86) + static inline void simde_trap(void) { __asm int 3h; } +# elif defined(__i386__) || defined(__x86_64__) + static inline void simde_trap(void) { __asm__ __volatile__("int $03"); } +# elif defined(__thumb__) + static inline void simde_trap(void) { __asm__ __volatile__(".inst 0xde01"); } +# elif defined(__aarch64__) + static inline void simde_trap(void) { __asm__ __volatile__(".inst 0xd4200000"); } +# elif defined(__arm__) + static inline void simde_trap(void) { __asm__ __volatile__(".inst 0xe7f001f0"); } +# elif defined (__alpha__) && !defined(__osf__) + static inline void simde_trap(void) { __asm__ __volatile__("bpt"); } +# elif defined(_54_) + static inline void simde_trap(void) { __asm__ __volatile__("ESTOP"); } +# elif defined(_55_) + static inline void simde_trap(void) { __asm__ __volatile__(";\n .if (.MNEMONIC)\n ESTOP_1\n .else\n ESTOP_1()\n .endif\n NOP"); } +# elif defined(_64P_) + static inline void simde_trap(void) { __asm__ __volatile__("SWBP 0"); } +# elif defined(_6x_) + static inline void simde_trap(void) { __asm__ __volatile__("NOP\n .word 0x10000000"); } +# elif defined(__STDC_HOSTED__) && (__STDC_HOSTED__ == 0) && defined(__GNUC__) +# define simde_trap() __builtin_trap() +# else +# include +# if defined(SIGTRAP) +# define simde_trap() raise(SIGTRAP) +# else +# define simde_trap() raise(SIGABRT) +# endif +# endif +#endif + +#if defined(HEDLEY_LIKELY) +# define SIMDE_DBG_LIKELY(expr) HEDLEY_LIKELY(expr) +#elif defined(__GNUC__) && (__GNUC__ >= 3) +# define SIMDE_DBG_LIKELY(expr) __builtin_expect(!!(expr), 1) +#else +# define SIMDE_DBG_LIKELY(expr) (!!(expr)) +#endif + +#if !defined(SIMDE_NDEBUG) || (SIMDE_NDEBUG == 0) +# define simde_dbg_assert(expr) do { \ + if (!SIMDE_DBG_LIKELY(expr)) { \ + simde_trap(); \ + } \ + } while (0) +#else +# define simde_dbg_assert(expr) +#endif + +#endif /* !defined(SIMDE_DEBUG_TRAP_H) */ +/* :: End simde/debug-trap.h :: */ + + HEDLEY_DIAGNOSTIC_PUSH + SIMDE_DIAGNOSTIC_DISABLE_VARIADIC_MACROS_ +# if defined(EOF) +# define simde_errorf(format, ...) (fprintf(stderr, format, __VA_ARGS__), abort()) +# else +# define simde_errorf(format, ...) (simde_trap()) +# endif + HEDLEY_DIAGNOSTIC_POP +#endif + +#define simde_error(msg) simde_errorf("%s", msg) + +#if defined(SIMDE_NDEBUG) || \ + (defined(__cplusplus) && (__cplusplus < 201103L)) || \ + (defined(__STDC__) && (__STDC__ < 199901L)) +# if defined(SIMDE_CHECK_FAIL_DEFINED) +# define simde_assert(expr) +# else +# if defined(HEDLEY_ASSUME) +# define simde_assert(expr) HEDLEY_ASSUME(expr) +# elif HEDLEY_GCC_VERSION_CHECK(4,5,0) +# define simde_assert(expr) ((void) (!!(expr) ? 1 : (__builtin_unreachable(), 1))) +# elif HEDLEY_MSVC_VERSION_CHECK(13,10,0) +# define simde_assert(expr) __assume(expr) +# else +# define simde_assert(expr) +# endif +# endif +# define simde_assert_true(expr) simde_assert(expr) +# define simde_assert_false(expr) simde_assert(!(expr)) +# define simde_assert_type_full(prefix, suffix, T, fmt, a, op, b) simde_assert(((a) op (b))) +# define simde_assert_double_equal(a, b, precision) +# define simde_assert_string_equal(a, b) +# define simde_assert_string_not_equal(a, b) +# define simde_assert_memory_equal(size, a, b) +# define simde_assert_memory_not_equal(size, a, b) +#else +# define simde_assert(expr) \ + do { \ + if (!HEDLEY_LIKELY(expr)) { \ + simde_error("assertion failed: " #expr "\n"); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_true(expr) \ + do { \ + if (!HEDLEY_LIKELY(expr)) { \ + simde_error("assertion failed: " #expr " is not true\n"); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_false(expr) \ + do { \ + if (!HEDLEY_LIKELY(!(expr))) { \ + simde_error("assertion failed: " #expr " is not false\n"); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_type_full(prefix, suffix, T, fmt, a, op, b) \ + do { \ + T simde_tmp_a_ = (a); \ + T simde_tmp_b_ = (b); \ + if (!(simde_tmp_a_ op simde_tmp_b_)) { \ + simde_errorf("assertion failed: %s %s %s (" prefix "%" fmt suffix " %s " prefix "%" fmt suffix ")\n", \ + #a, #op, #b, simde_tmp_a_, #op, simde_tmp_b_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_double_equal(a, b, precision) \ + do { \ + const double simde_tmp_a_ = (a); \ + const double simde_tmp_b_ = (b); \ + const double simde_tmp_diff_ = ((simde_tmp_a_ - simde_tmp_b_) < 0) ? \ + -(simde_tmp_a_ - simde_tmp_b_) : \ + (simde_tmp_a_ - simde_tmp_b_); \ + if (HEDLEY_UNLIKELY(simde_tmp_diff_ > 1e-##precision)) { \ + simde_errorf("assertion failed: %s == %s (%0." #precision "g == %0." #precision "g)\n", \ + #a, #b, simde_tmp_a_, simde_tmp_b_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# include +# define simde_assert_string_equal(a, b) \ + do { \ + const char* simde_tmp_a_ = a; \ + const char* simde_tmp_b_ = b; \ + if (HEDLEY_UNLIKELY(strcmp(simde_tmp_a_, simde_tmp_b_) != 0)) { \ + simde_errorf("assertion failed: string %s == %s (\"%s\" == \"%s\")\n", \ + #a, #b, simde_tmp_a_, simde_tmp_b_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_string_not_equal(a, b) \ + do { \ + const char* simde_tmp_a_ = a; \ + const char* simde_tmp_b_ = b; \ + if (HEDLEY_UNLIKELY(strcmp(simde_tmp_a_, simde_tmp_b_) == 0)) { \ + simde_errorf("assertion failed: string %s != %s (\"%s\" == \"%s\")\n", \ + #a, #b, simde_tmp_a_, simde_tmp_b_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_memory_equal(size, a, b) \ + do { \ + const unsigned char* simde_tmp_a_ = (const unsigned char*) (a); \ + const unsigned char* simde_tmp_b_ = (const unsigned char*) (b); \ + const size_t simde_tmp_size_ = (size); \ + if (HEDLEY_UNLIKELY(memcmp(simde_tmp_a_, simde_tmp_b_, simde_tmp_size_)) != 0) { \ + size_t simde_tmp_pos_; \ + for (simde_tmp_pos_ = 0 ; simde_tmp_pos_ < simde_tmp_size_ ; simde_tmp_pos_++) { \ + if (simde_tmp_a_[simde_tmp_pos_] != simde_tmp_b_[simde_tmp_pos_]) { \ + simde_errorf("assertion failed: memory %s == %s, at offset %" SIMDE_SIZE_MODIFIER "u\n", \ + #a, #b, simde_tmp_pos_); \ + break; \ + } \ + } \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ + +# define simde_assert_memory_not_equal(size, a, b) \ + do { \ + const unsigned char* simde_tmp_a_ = (const unsigned char*) (a); \ + const unsigned char* simde_tmp_b_ = (const unsigned char*) (b); \ + const size_t simde_tmp_size_ = (size); \ + if (HEDLEY_UNLIKELY(memcmp(simde_tmp_a_, simde_tmp_b_, simde_tmp_size_)) == 0) { \ + simde_errorf("assertion failed: memory %s != %s (%" SIMDE_SIZE_MODIFIER "u bytes)\n", \ + #a, #b, simde_tmp_size_); \ + } \ + SIMDE_PUSH_DISABLE_MSVC_C4127_ \ + } while (0) \ + SIMDE_POP_DISABLE_MSVC_C4127_ +#endif + +#define simde_assert_type(T, fmt, a, op, b) \ + simde_assert_type_full("", "", T, fmt, a, op, b) + +#define simde_assert_char(a, op, b) \ + simde_assert_type_full("'\\x", "'", char, "02" SIMDE_CHAR_MODIFIER "x", a, op, b) +#define simde_assert_uchar(a, op, b) \ + simde_assert_type_full("'\\x", "'", unsigned char, "02" SIMDE_CHAR_MODIFIER "x", a, op, b) +#define simde_assert_short(a, op, b) \ + simde_assert_type(short, SIMDE_SHORT_MODIFIER "d", a, op, b) +#define simde_assert_ushort(a, op, b) \ + simde_assert_type(unsigned short, SIMDE_SHORT_MODIFIER "u", a, op, b) +#define simde_assert_int(a, op, b) \ + simde_assert_type(int, "d", a, op, b) +#define simde_assert_uint(a, op, b) \ + simde_assert_type(unsigned int, "u", a, op, b) +#define simde_assert_long(a, op, b) \ + simde_assert_type(long int, "ld", a, op, b) +#define simde_assert_ulong(a, op, b) \ + simde_assert_type(unsigned long int, "lu", a, op, b) +#define simde_assert_llong(a, op, b) \ + simde_assert_type(long long int, "lld", a, op, b) +#define simde_assert_ullong(a, op, b) \ + simde_assert_type(unsigned long long int, "llu", a, op, b) + +#define simde_assert_size(a, op, b) \ + simde_assert_type(size_t, SIMDE_SIZE_MODIFIER "u", a, op, b) + +#define simde_assert_float(a, op, b) \ + simde_assert_type(float, "f", a, op, b) +#define simde_assert_double(a, op, b) \ + simde_assert_type(double, "g", a, op, b) +#define simde_assert_ptr(a, op, b) \ + simde_assert_type(const void*, "p", a, op, b) + +#define simde_assert_int8(a, op, b) \ + simde_assert_type(int8_t, PRIi8, a, op, b) +#define simde_assert_uint8(a, op, b) \ + simde_assert_type(uint8_t, PRIu8, a, op, b) +#define simde_assert_int16(a, op, b) \ + simde_assert_type(int16_t, PRIi16, a, op, b) +#define simde_assert_uint16(a, op, b) \ + simde_assert_type(uint16_t, PRIu16, a, op, b) +#define simde_assert_int32(a, op, b) \ + simde_assert_type(int32_t, PRIi32, a, op, b) +#define simde_assert_uint32(a, op, b) \ + simde_assert_type(uint32_t, PRIu32, a, op, b) +#define simde_assert_int64(a, op, b) \ + simde_assert_type(int64_t, PRIi64, a, op, b) +#define simde_assert_uint64(a, op, b) \ + simde_assert_type(uint64_t, PRIu64, a, op, b) + +#define simde_assert_ptr_equal(a, b) \ + simde_assert_ptr(a, ==, b) +#define simde_assert_ptr_not_equal(a, b) \ + simde_assert_ptr(a, !=, b) +#define simde_assert_null(ptr) \ + simde_assert_ptr(ptr, ==, NULL) +#define simde_assert_not_null(ptr) \ + simde_assert_ptr(ptr, !=, NULL) +#define simde_assert_ptr_null(ptr) \ + simde_assert_ptr(ptr, ==, NULL) +#define simde_assert_ptr_not_null(ptr) \ + simde_assert_ptr(ptr, !=, NULL) + +#endif /* !defined(SIMDE_CHECK_H) */ +/* :: End simde/check.h :: */ + +/* GCC/clang have a bunch of functionality in builtins which we would + * like to access, but the suffixes indicate whether the operate on + * int, long, or long long, not fixed width types (e.g., int32_t). + * we use these macros to attempt to map from fixed-width to the + * names GCC uses. Note that you should still cast the input(s) and + * return values (to/from SIMDE_BUILTIN_TYPE_*_) since often even if + * types are the same size they may not be compatible according to the + * compiler. For example, on x86 long and long lonsg are generally + * both 64 bits, but platforms vary on whether an int64_t is mapped + * to a long or long long. */ + +#include + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ + +#if (INT8_MAX == INT_MAX) && (INT8_MIN == INT_MIN) + #define SIMDE_BUILTIN_SUFFIX_8_ + #define SIMDE_BUILTIN_TYPE_8_ int +#elif (INT8_MAX == LONG_MAX) && (INT8_MIN == LONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_8_ l + #define SIMDE_BUILTIN_TYPE_8_ long +#elif (INT8_MAX == LLONG_MAX) && (INT8_MIN == LLONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_8_ ll + #define SIMDE_BUILTIN_TYPE_8_ long long +#endif + +#if (INT16_MAX == INT_MAX) && (INT16_MIN == INT_MIN) + #define SIMDE_BUILTIN_SUFFIX_16_ + #define SIMDE_BUILTIN_TYPE_16_ int +#elif (INT16_MAX == LONG_MAX) && (INT16_MIN == LONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_16_ l + #define SIMDE_BUILTIN_TYPE_16_ long +#elif (INT16_MAX == LLONG_MAX) && (INT16_MIN == LLONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_16_ ll + #define SIMDE_BUILTIN_TYPE_16_ long long +#endif + +#if (INT32_MAX == INT_MAX) && (INT32_MIN == INT_MIN) + #define SIMDE_BUILTIN_SUFFIX_32_ + #define SIMDE_BUILTIN_TYPE_32_ int +#elif (INT32_MAX == LONG_MAX) && (INT32_MIN == LONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_32_ l + #define SIMDE_BUILTIN_TYPE_32_ long +#elif (INT32_MAX == LLONG_MAX) && (INT32_MIN == LLONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_32_ ll + #define SIMDE_BUILTIN_TYPE_32_ long long +#endif + +#if (INT64_MAX == INT_MAX) && (INT64_MIN == INT_MIN) + #define SIMDE_BUILTIN_SUFFIX_64_ + #define SIMDE_BUILTIN_TYPE_64_ int +#elif (INT64_MAX == LONG_MAX) && (INT64_MIN == LONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_64_ l + #define SIMDE_BUILTIN_TYPE_64_ long +#elif (INT64_MAX == LLONG_MAX) && (INT64_MIN == LLONG_MIN) + #define SIMDE_BUILTIN_SUFFIX_64_ ll + #define SIMDE_BUILTIN_TYPE_64_ long long +#endif + +/* SIMDE_DIAGNOSTIC_DISABLE_CPP98_COMPAT_PEDANTIC_ */ +HEDLEY_DIAGNOSTIC_POP + +#if defined(SIMDE_BUILTIN_SUFFIX_8_) + #define SIMDE_BUILTIN_8_(name) HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_8_) + #define SIMDE_BUILTIN_HAS_8_(name) HEDLEY_HAS_BUILTIN(HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_8_)) +#else + #define SIMDE_BUILTIN_HAS_8_(name) 0 +#endif +#if defined(SIMDE_BUILTIN_SUFFIX_16_) + #define SIMDE_BUILTIN_16_(name) HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_16_) + #define SIMDE_BUILTIN_HAS_16_(name) HEDLEY_HAS_BUILTIN(HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_16_)) +#else + #define SIMDE_BUILTIN_HAS_16_(name) 0 +#endif +#if defined(SIMDE_BUILTIN_SUFFIX_32_) + #define SIMDE_BUILTIN_32_(name) HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_32_) + #define SIMDE_BUILTIN_HAS_32_(name) HEDLEY_HAS_BUILTIN(HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_32_)) +#else + #define SIMDE_BUILTIN_HAS_32_(name) 0 +#endif +#if defined(SIMDE_BUILTIN_SUFFIX_64_) + #define SIMDE_BUILTIN_64_(name) HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_64_) + #define SIMDE_BUILTIN_HAS_64_(name) HEDLEY_HAS_BUILTIN(HEDLEY_CONCAT3(__builtin_, name, SIMDE_BUILTIN_SUFFIX_64_)) +#else + #define SIMDE_BUILTIN_HAS_64_(name) 0 +#endif + +#if !defined(__cplusplus) + #if defined(__clang__) + #if HEDLEY_HAS_WARNING("-Wc11-extensions") + #define SIMDE_GENERIC_(...) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc11-extensions\"") \ + _Generic(__VA_ARGS__); \ + HEDLEY_DIAGNOSTIC_POP \ + })) + #elif HEDLEY_HAS_WARNING("-Wc1x-extensions") + #define SIMDE_GENERIC_(...) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc1x-extensions\"") \ + _Generic(__VA_ARGS__); \ + HEDLEY_DIAGNOSTIC_POP \ + })) + #endif + #elif \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) || \ + HEDLEY_HAS_EXTENSION(c_generic_selections) || \ + HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + HEDLEY_ARM_VERSION_CHECK(5,3,0) + #define SIMDE_GENERIC_(...) _Generic(__VA_ARGS__) + #endif +#endif + +/* Sometimes we run into problems with specific versions of compilers + which make the native versions unusable for us. Often this is due + to missing functions, sometimes buggy implementations, etc. These + macros are how we check for specific bugs. As they are fixed we'll + start only defining them for problematic compiler versions. */ + +#if !defined(SIMDE_IGNORE_COMPILER_BUGS) +# if defined(HEDLEY_GCC_VERSION) +# if !HEDLEY_GCC_VERSION_CHECK(4,9,0) +# define SIMDE_BUG_GCC_REV_208793 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(5,0,0) +# define SIMDE_BUG_GCC_BAD_MM_SRA_EPI32 /* TODO: find relevant bug or commit */ +# endif +# if !HEDLEY_GCC_VERSION_CHECK(6,0,0) +# define SIMDE_BUG_GCC_SIZEOF_IMMEDIATE +# endif +# if !HEDLEY_GCC_VERSION_CHECK(4,6,0) +# define SIMDE_BUG_GCC_BAD_MM_EXTRACT_EPI8 /* TODO: find relevant bug or commit */ +# endif +# if !HEDLEY_GCC_VERSION_CHECK(7,4,0) || (HEDLEY_GCC_VERSION_CHECK(8,0,0) && !HEDLEY_GCC_VERSION_CHECK(8,3,0)) +# define SIMDE_BUG_GCC_87467 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(8,0,0) +# define SIMDE_BUG_GCC_REV_247851 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(10,0,0) +# define SIMDE_BUG_GCC_REV_274313 +# define SIMDE_BUG_GCC_91341 +# define SIMDE_BUG_GCC_92035 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(9,0,0) && defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_ARM_SHIFT_SCALAR +# endif +# if !HEDLEY_GCC_VERSION_CHECK(9,0,0) && defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_BAD_VEXT_REV32 +# endif +# if !(HEDLEY_GCC_VERSION_CHECK(9,4,0) \ + || (HEDLEY_GCC_VERSION_CHECK(8,5,0) && !HEDLEY_GCC_VERSION_CHECK(9,0,0)) \ + ) && defined(SIMDE_ARCH_X86) && !defined(SIMDE_ARCH_AMD64) +# define SIMDE_BUG_GCC_94482 +# endif +# if (defined(SIMDE_ARCH_X86) && !defined(SIMDE_ARCH_AMD64)) || defined(SIMDE_ARCH_ZARCH) +# define SIMDE_BUG_GCC_53784 +# endif +# if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) +# if HEDLEY_GCC_VERSION_CHECK(4,3,0) /* -Wsign-conversion */ +# define SIMDE_BUG_GCC_95144 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(11,2,0) +# define SIMDE_BUG_GCC_95483 +# endif +# if defined(__OPTIMIZE__) +# define SIMDE_BUG_GCC_100927 +# endif +# if !(HEDLEY_GCC_VERSION_CHECK(10,3,0)) +# define SIMDE_BUG_GCC_98521 +# endif +# endif +# if !HEDLEY_GCC_VERSION_CHECK(9,4,0) && defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_94488 +# endif +# if !HEDLEY_GCC_VERSION_CHECK(9,1,0) && defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_REV_264019 +# endif +# if (!HEDLEY_GCC_VERSION_CHECK(9,0,0) && !defined(SIMDE_ARCH_AARCH64)) || (!defined(SIMDE_ARCH_AARCH64) && defined(SIMDE_ARCH_ARM)) +# define SIMDE_BUG_GCC_REV_260989 +# endif +# if defined(SIMDE_ARCH_ARM) && !defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_GCC_95399 +# define SIMDE_BUG_GCC_95471 +# define SIMDE_BUG_GCC_111609 +# if SIMDE_ARCH_ARM_CHECK(8,0) +# define SIMDE_BUG_GCC_113065 +# endif +# endif +# if defined(SIMDE_ARCH_POWER) +# define SIMDE_BUG_GCC_95227 +# define SIMDE_BUG_GCC_95782 +# if !HEDLEY_GCC_VERSION_CHECK(12,0,0) +# define SIMDE_BUG_VEC_CPSGN_REVERSED_ARGS +# endif +# endif +# if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) +# if !HEDLEY_GCC_VERSION_CHECK(10,2,0) && !defined(__OPTIMIZE__) +# define SIMDE_BUG_GCC_96174 +# endif +# endif +# if defined(SIMDE_ARCH_ZARCH) +# define SIMDE_BUG_GCC_95782 +# if HEDLEY_GCC_VERSION_CHECK(10,0,0) +# define SIMDE_BUG_GCC_101614 +# endif +# endif +# if defined(SIMDE_ARCH_MIPS_MSA) +# define SIMDE_BUG_GCC_97248 +# if !HEDLEY_GCC_VERSION_CHECK(12,1,0) +# define SIMDE_BUG_GCC_100760 +# define SIMDE_BUG_GCC_100761 +# define SIMDE_BUG_GCC_100762 +# endif +# endif +# if !defined(__OPTIMIZE__) && !(\ + HEDLEY_GCC_VERSION_CHECK(11,4,0) \ + || (HEDLEY_GCC_VERSION_CHECK(10,4,0) && !(HEDLEY_GCC_VERSION_CHECK(11,0,0))) \ + || (HEDLEY_GCC_VERSION_CHECK(9,5,0) && !(HEDLEY_GCC_VERSION_CHECK(10,0,0)))) +# define SIMDE_BUG_GCC_105339 +# endif +# elif defined(__clang__) +# if defined(SIMDE_ARCH_AARCH64) +# define SIMDE_BUG_CLANG_48257 // https://github.com/llvm/llvm-project/issues/47601 +# define SIMDE_BUG_CLANG_71362 // https://github.com/llvm/llvm-project/issues/71362 +# define SIMDE_BUG_CLANG_71365 // https://github.com/llvm/llvm-project/issues/71365 +# define SIMDE_BUG_CLANG_71751 // https://github.com/llvm/llvm-project/issues/71751 +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(15,0,0) +# define SIMDE_BUG_CLANG_45541 +# endif +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0) +# define SIMDE_BUG_CLANG_46840 +# define SIMDE_BUG_CLANG_46844 +# endif +# if SIMDE_DETECT_CLANG_VERSION_CHECK(10,0,0) && SIMDE_DETECT_CLANG_VERSION_NOT(11,0,0) +# define SIMDE_BUG_CLANG_BAD_VI64_OPS +# endif +# if SIMDE_DETECT_CLANG_VERSION_NOT(9,0,0) +# define SIMDE_BUG_CLANG_GIT_4EC445B8 +# define SIMDE_BUG_CLANG_REV_365298 /* 0464e07c8f6e3310c28eb210a4513bc2243c2a7e */ +# endif +# endif +# if defined(SIMDE_ARCH_ARM) +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(11,0,0) +# define SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES +# endif +# if defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_ARM_NEON_A32V8_NATIVE) +# define SIMDE_BUG_CLANG_71763 // https://github.com/llvm/llvm-project/issues/71763 +# endif +# endif +# if defined(SIMDE_ARCH_POWER) && !SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0) +# define SIMDE_BUG_CLANG_46770 +# endif +# if defined(SIMDE_ARCH_POWER) && (SIMDE_ARCH_POWER == 700) && (SIMDE_DETECT_CLANG_VERSION_CHECK(11,0,0)) +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(13,0,0) +# define SIMDE_BUG_CLANG_50893 +# define SIMDE_BUG_CLANG_50901 +# endif +# endif +# if defined(_ARCH_PWR9) && !SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0) && !defined(__OPTIMIZE__) +# define SIMDE_BUG_CLANG_POWER9_16x4_BAD_SHIFT +# endif +# if defined(SIMDE_ARCH_POWER) +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(14,0,0) +# define SIMDE_BUG_CLANG_50932 +# endif +# if !SIMDE_DETECT_CLANG_VERSION_CHECK(12,0,0) +# define SIMDE_BUG_VEC_CPSGN_REVERSED_ARGS +# endif +# endif +# if defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64) +# if SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) +# define SIMDE_BUG_CLANG_REV_298042 /* 6afc436a7817a52e78ae7bcdc3faafd460124cac */ +# endif +# if SIMDE_DETECT_CLANG_VERSION_NOT(3,7,0) +# define SIMDE_BUG_CLANG_REV_234560 /* b929ad7b1726a32650a8051f69a747fb6836c540 */ +# endif +# if SIMDE_DETECT_CLANG_VERSION_CHECK(3,8,0) && SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) +# define SIMDE_BUG_CLANG_BAD_MADD +# endif +# if SIMDE_DETECT_CLANG_VERSION_CHECK(4,0,0) && SIMDE_DETECT_CLANG_VERSION_NOT(5,0,0) +# define SIMDE_BUG_CLANG_REV_299346 /* ac9959eb533a58482ea4da6c4db1e635a98de384 */ +# endif +# if SIMDE_DETECT_CLANG_VERSION_NOT(8,0,0) +# define SIMDE_BUG_CLANG_REV_344862 /* eae26bf73715994c2bd145f9b6dc3836aa4ffd4f */ +# endif +# if HEDLEY_HAS_WARNING("-Wsign-conversion") && SIMDE_DETECT_CLANG_VERSION_NOT(11,0,0) +# define SIMDE_BUG_CLANG_45931 +# endif +# if HEDLEY_HAS_WARNING("-Wvector-conversion") && SIMDE_DETECT_CLANG_VERSION_NOT(11,0,0) +# define SIMDE_BUG_CLANG_44589 +# endif +# define SIMDE_BUG_CLANG_48673 // https://github.com/llvm/llvm-project/issues/48017 +# endif +# define SIMDE_BUG_CLANG_45959 // https://github.com/llvm/llvm-project/issues/45304 +# if defined(SIMDE_ARCH_WASM_SIMD128) && !SIMDE_DETECT_CLANG_VERSION_CHECK(17,0,0) +# define SIMDE_BUG_CLANG_60655 +# endif +# elif defined(HEDLEY_MSVC_VERSION) +# if defined(SIMDE_ARCH_X86) +# define SIMDE_BUG_MSVC_ROUND_EXTRACT +# endif +# elif defined(HEDLEY_INTEL_VERSION) +# define SIMDE_BUG_INTEL_857088 +# elif defined(HEDLEY_MCST_LCC_VERSION) +# define SIMDE_BUG_MCST_LCC_MISSING_AVX_LOAD_STORE_M128_FUNCS +# define SIMDE_BUG_MCST_LCC_MISSING_CMOV_M256 +# define SIMDE_BUG_MCST_LCC_FMA_WRONG_RESULT +# elif defined(HEDLEY_PGI_VERSION) +# define SIMDE_BUG_PGI_30104 +# define SIMDE_BUG_PGI_30107 +# define SIMDE_BUG_PGI_30106 +# endif +#endif + +/* GCC and Clang both have the same issue: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95144 + * https://bugs.llvm.org/show_bug.cgi?id=45931 + * This is just an easy way to work around it. + */ +#if \ + (HEDLEY_HAS_WARNING("-Wsign-conversion") && SIMDE_DETECT_CLANG_VERSION_NOT(11,0,0)) || \ + HEDLEY_GCC_VERSION_CHECK(4,3,0) +# define SIMDE_BUG_IGNORE_SIGN_CONVERSION(expr) (__extension__ ({ \ + HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("GCC diagnostic ignored \"-Wsign-conversion\"") \ + __typeof__(expr) simde_bug_ignore_sign_conversion_v_= (expr); \ + HEDLEY_DIAGNOSTIC_POP \ + simde_bug_ignore_sign_conversion_v_; \ + })) +#else +# define SIMDE_BUG_IGNORE_SIGN_CONVERSION(expr) (expr) +#endif + +/* Usually the shift count is signed (for example, NEON or SSE). + * OTOH, unsigned is good for PPC (vec_srl uses unsigned), and the only option for E2K. + * Further info: https://github.com/simd-everywhere/simde/pull/700 + */ +#if defined(SIMDE_ARCH_E2K) || defined(SIMDE_ARCH_POWER) + #define SIMDE_CAST_VECTOR_SHIFT_COUNT(width, value) HEDLEY_STATIC_CAST(uint##width##_t, (value)) +#else + #define SIMDE_CAST_VECTOR_SHIFT_COUNT(width, value) HEDLEY_STATIC_CAST(int##width##_t, (value)) +#endif + +/* Initial support for RISCV V extensions based on ZVE64D. */ +#if defined(SIMDE_ARCH_RISCV_ZVE64D) && SIMDE_NATURAL_VECTOR_SIZE >= 64 + #define RVV_FIXED_TYPE_DEF(name, lmul) \ + typedef vint8##name##_t fixed_vint8##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vint16##name##_t fixed_vint16##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vint32##name##_t fixed_vint32##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vuint8##name##_t fixed_vuint8##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vuint16##name##_t fixed_vuint16##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vuint32##name##_t fixed_vuint32##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vfloat32##name##_t fixed_vfloat32##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); + RVV_FIXED_TYPE_DEF(mf2, 1/2); + RVV_FIXED_TYPE_DEF(m1, 1); + RVV_FIXED_TYPE_DEF(m2, 2); + #define RVV_FIXED_TYPE_DEF_64B(name, lmul) \ + typedef vint64##name##_t fixed_vint64##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vuint64##name##_t fixed_vuint64##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); \ + typedef vfloat64##name##_t fixed_vfloat64##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); + RVV_FIXED_TYPE_DEF_64B(m1, 1); + RVV_FIXED_TYPE_DEF_64B(m2, 2); + #if defined(SIMDE_ARCH_RISCV_ZVFH) + #define RVV_FIXED_TYPE_DEF_16F(name, lmul) \ + typedef vfloat16##name##_t fixed_vfloat16##name##_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * lmul))); + RVV_FIXED_TYPE_DEF_16F(mf2, 1/2); + RVV_FIXED_TYPE_DEF_16F(m1, 1); + RVV_FIXED_TYPE_DEF_16F(m2, 2); + #endif +#endif + +/* SIMDE_DIAGNOSTIC_DISABLE_USED_BUT_MARKED_UNUSED_ */ +HEDLEY_DIAGNOSTIC_POP + +#endif /* !defined(SIMDE_COMMON_H) */ +/* :: End simde/simde-common.h :: */ + +HEDLEY_DIAGNOSTIC_PUSH +SIMDE_DISABLE_UNWANTED_DIAGNOSTICS +SIMDE_BEGIN_DECLS_ + +typedef union { + #if defined(SIMDE_VECTOR_SUBSCRIPT) + SIMDE_ALIGN_TO_16 int8_t i8 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 int16_t i16 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 int32_t i32 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 int64_t i64 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint8_t u8 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint16_t u16 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint32_t u32 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint64_t u64 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + #if defined(SIMDE_HAVE_INT128_) + SIMDE_ALIGN_TO_16 simde_int128 i128 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 simde_uint128 u128 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + #endif + SIMDE_ALIGN_TO_16 simde_float32 f32 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 simde_float64 f64 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 int_fast32_t i32f SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + SIMDE_ALIGN_TO_16 uint_fast32_t u32f SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; + #else + SIMDE_ALIGN_TO_16 int8_t i8[16]; + SIMDE_ALIGN_TO_16 int16_t i16[8]; + SIMDE_ALIGN_TO_16 int32_t i32[4]; + SIMDE_ALIGN_TO_16 int64_t i64[2]; + SIMDE_ALIGN_TO_16 uint8_t u8[16]; + SIMDE_ALIGN_TO_16 uint16_t u16[8]; + SIMDE_ALIGN_TO_16 uint32_t u32[4]; + SIMDE_ALIGN_TO_16 uint64_t u64[2]; + #if defined(SIMDE_HAVE_INT128_) + SIMDE_ALIGN_TO_16 simde_int128 i128[1]; + SIMDE_ALIGN_TO_16 simde_uint128 u128[1]; + #endif + SIMDE_ALIGN_TO_16 simde_float32 f32[4]; + SIMDE_ALIGN_TO_16 simde_float64 f64[2]; + SIMDE_ALIGN_TO_16 int_fast32_t i32f[16 / sizeof(int_fast32_t)]; + SIMDE_ALIGN_TO_16 uint_fast32_t u32f[16 / sizeof(uint_fast32_t)]; + #endif + + #if defined(SIMDE_X86_SSE_NATIVE) + SIMDE_ALIGN_TO_16 __m128 sse_m128; + #if defined(SIMDE_X86_SSE2_NATIVE) + SIMDE_ALIGN_TO_16 __m128i sse_m128i; + SIMDE_ALIGN_TO_16 __m128d sse_m128d; + #endif + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + SIMDE_ALIGN_TO_16 int8x16_t neon_i8; + SIMDE_ALIGN_TO_16 int16x8_t neon_i16; + SIMDE_ALIGN_TO_16 int32x4_t neon_i32; + SIMDE_ALIGN_TO_16 int64x2_t neon_i64; + SIMDE_ALIGN_TO_16 uint8x16_t neon_u8; + SIMDE_ALIGN_TO_16 uint16x8_t neon_u16; + SIMDE_ALIGN_TO_16 uint32x4_t neon_u32; + SIMDE_ALIGN_TO_16 uint64x2_t neon_u64; + SIMDE_ALIGN_TO_16 float32x4_t neon_f32; + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + SIMDE_ALIGN_TO_16 float64x2_t neon_f64; + #endif + #elif defined(SIMDE_WASM_SIMD128_NATIVE) + SIMDE_ALIGN_TO_16 v128_t wasm_v128; + #elif defined(SIMDE_MIPS_MSA_NATIVE) + SIMDE_ALIGN_TO_16 v16i8 msa_v16i8; + SIMDE_ALIGN_TO_16 v8i16 msa_v8i16; + SIMDE_ALIGN_TO_16 v4i32 msa_v4i32; + SIMDE_ALIGN_TO_16 v2i64 msa_v2i64; + SIMDE_ALIGN_TO_16 v16u8 msa_v16u8; + SIMDE_ALIGN_TO_16 v8u16 msa_v8u16; + SIMDE_ALIGN_TO_16 v4u32 msa_v4u32; + SIMDE_ALIGN_TO_16 v2u64 msa_v2u64; + SIMDE_ALIGN_TO_16 v4f32 msa_v4f32; + SIMDE_ALIGN_TO_16 v2f64 msa_v2f64; + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) altivec_u8; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) altivec_u16; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(unsigned int) altivec_u32; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed char) altivec_i8; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed short) altivec_i16; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed int) altivec_i32; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(float) altivec_f32; + #if defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(unsigned long long) altivec_u64; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(signed long long) altivec_i64; + SIMDE_ALIGN_TO_16 SIMDE_POWER_ALTIVEC_VECTOR(double) altivec_f64; + #endif + #endif +} simde_v128_private; + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + typedef v128_t simde_v128_t; +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + typedef int32x4_t simde_v128_t; +#elif defined(SIMDE_X86_SSE2_NATIVE) + typedef __m128i simde_v128_t; +#elif defined(SIMDE_X86_SSE_NATIVE) + typedef __m128 simde_v128_t; +#elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + typedef SIMDE_POWER_ALTIVEC_VECTOR(signed int) simde_v128_t; +#elif defined(SIMDE_MIPS_MSA_NATIVE) + typedef v4i32 simde_v128_t; +#elif defined(SIMDE_VECTOR_SUBSCRIPT) + typedef int32_t simde_v128_t SIMDE_ALIGN_TO_16 SIMDE_VECTOR(16) SIMDE_MAY_ALIAS; +#else + typedef simde_v128_private simde_v128_t; +#endif + +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + typedef simde_v128_t v128_t; +#endif + +HEDLEY_STATIC_ASSERT(16 == sizeof(simde_v128_t), "simde_v128_t size incorrect"); +HEDLEY_STATIC_ASSERT(16 == sizeof(simde_v128_private), "simde_v128_private size incorrect"); +#if defined(SIMDE_CHECK_ALIGNMENT) && defined(SIMDE_ALIGN_OF) +HEDLEY_STATIC_ASSERT(SIMDE_ALIGN_OF(simde_v128_t) == 16, "simde_v128_t is not 16-byte aligned"); +HEDLEY_STATIC_ASSERT(SIMDE_ALIGN_OF(simde_v128_private) == 16, "simde_v128_private is not 16-byte aligned"); +#endif + +#define SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(Other_Type, SIMDe_Type, To_Name, From_Name) \ + SIMDE_FUNCTION_ATTRIBUTES \ + Other_Type To_Name(SIMDe_Type v) { \ + Other_Type r; \ + simde_memcpy(&r, &v, sizeof(r)); \ + return r; \ + } \ + \ + SIMDE_FUNCTION_ATTRIBUTES \ + SIMDe_Type From_Name(Other_Type v) { \ + SIMDe_Type r; \ + simde_memcpy(&r, &v, sizeof(r)); \ + return r; \ + } + +SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(simde_v128_private, simde_v128_t, simde_v128_to_private, simde_v128_from_private) + +#define SIMDE_WASM_SIMD128_FMIN(x, y) \ + (simde_math_isnan(x) ? SIMDE_MATH_NAN \ + : simde_math_isnan(y) ? SIMDE_MATH_NAN \ + : (((x) == 0) && ((y) == 0)) ? (simde_math_signbit(x) ? (x) : (y)) \ + : ((x) < (y) ? (x) : (y))) + +#define SIMDE_WASM_SIMD128_FMAX(x, y) \ + (simde_math_isnan(x) ? SIMDE_MATH_NAN \ + : simde_math_isnan(y) ? SIMDE_MATH_NAN \ + : (((x) == 0) && ((y) == 0)) ? (simde_math_signbit(x) ? (y) : (x)) \ + : ((x) > (y) ? (x) : (y))) + +#define SIMDE_WASM_SIMD128_FMINF(x, y) \ + (simde_math_isnanf(x) ? SIMDE_MATH_NANF \ + : simde_math_isnanf(y) ? SIMDE_MATH_NANF \ + : (((x) == 0) && ((y) == 0)) ? (simde_math_signbit(x) ? (x) : (y)) \ + : ((x) < (y) ? (x) : (y))) + +#define SIMDE_WASM_SIMD128_FMAXF(x, y) \ + (simde_math_isnanf(x) ? SIMDE_MATH_NANF \ + : simde_math_isnanf(y) ? SIMDE_MATH_NANF \ + : (((x) == 0) && ((y) == 0)) ? (simde_math_signbit(x) ? (y) : (x)) \ + : ((x) > (y) ? (x) : (y))) + +#if defined(SIMDE_X86_SSE_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(__m128 , simde_v128_t, simde_v128_to_m128 , simde_v128_from_m128 ) +#endif +#if defined(SIMDE_X86_SSE2_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(__m128i, simde_v128_t, simde_v128_to_m128i, simde_v128_from_m128i) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(__m128d, simde_v128_t, simde_v128_to_m128d, simde_v128_from_m128d) +#endif + +#if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( int8x16_t, simde_v128_t, simde_v128_to_neon_i8 , simde_v128_from_neon_i8 ) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( int16x8_t, simde_v128_t, simde_v128_to_neon_i16, simde_v128_from_neon_i16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( int32x4_t, simde_v128_t, simde_v128_to_neon_i32, simde_v128_from_neon_i32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( int64x2_t, simde_v128_t, simde_v128_to_neon_i64, simde_v128_from_neon_i64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( uint8x16_t, simde_v128_t, simde_v128_to_neon_u8 , simde_v128_from_neon_u8 ) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( uint16x8_t, simde_v128_t, simde_v128_to_neon_u16, simde_v128_from_neon_u16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( uint32x4_t, simde_v128_t, simde_v128_to_neon_u32, simde_v128_from_neon_u32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS( uint64x2_t, simde_v128_t, simde_v128_to_neon_u64, simde_v128_from_neon_u64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(float32x4_t, simde_v128_t, simde_v128_to_neon_f32, simde_v128_from_neon_f32) + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(float64x2_t, simde_v128_t, simde_v128_to_neon_f64, simde_v128_from_neon_f64) + #endif +#endif /* defined(SIMDE_ARM_NEON_A32V7_NATIVE) */ + +#if defined(SIMDE_MIPS_MSA_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v16i8, simde_v128_t, simde_v128_to_msa_v16i8, simde_v128_from_msa_v16i8) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v8i16, simde_v128_t, simde_v128_to_msa_v8i16, simde_v128_from_msa_v8i16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v4i32, simde_v128_t, simde_v128_to_msa_v4i32, simde_v128_from_msa_v4i32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v2i64, simde_v128_t, simde_v128_to_msa_v2i64, simde_v128_from_msa_v2i64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v16u8, simde_v128_t, simde_v128_to_msa_v16u8, simde_v128_from_msa_v16u8) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v8u16, simde_v128_t, simde_v128_to_msa_v8u16, simde_v128_from_msa_v8u16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v4u32, simde_v128_t, simde_v128_to_msa_v4u32, simde_v128_from_msa_v4u32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v2u64, simde_v128_t, simde_v128_to_msa_v2u64, simde_v128_from_msa_v2u64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v4f32, simde_v128_t, simde_v128_to_msa_v4f32, simde_v128_from_msa_v4f32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(v2f64, simde_v128_t, simde_v128_to_msa_v2f64, simde_v128_from_msa_v2f64) +#endif + +#if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR( signed char), simde_v128_t, simde_v128_to_altivec_i8 , simde_v128_from_altivec_i8 ) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR( signed short), simde_v128_t, simde_v128_to_altivec_i16, simde_v128_from_altivec_i16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR( signed int), simde_v128_t, simde_v128_to_altivec_i32, simde_v128_from_altivec_i32) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), simde_v128_t, simde_v128_to_altivec_u8 , simde_v128_from_altivec_u8 ) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(unsigned short), simde_v128_t, simde_v128_to_altivec_u16, simde_v128_from_altivec_u16) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(unsigned int), simde_v128_t, simde_v128_to_altivec_u32, simde_v128_from_altivec_u32) + #if defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR( signed long long), simde_v128_t, simde_v128_to_altivec_i64, simde_v128_from_altivec_i64) + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(unsigned long long), simde_v128_t, simde_v128_to_altivec_u64, simde_v128_from_altivec_u64) + #endif + + #if defined(SIMDE_BUG_GCC_95782) + SIMDE_FUNCTION_ATTRIBUTES + SIMDE_POWER_ALTIVEC_VECTOR(float) + simde_v128_to_altivec_f32(simde_v128_t value) { + simde_v128_private r_ = simde_v128_to_private(value); + return r_.altivec_f32; + } + + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_v128_from_altivec_f32(SIMDE_POWER_ALTIVEC_VECTOR(float) value) { + simde_v128_private r_; + r_.altivec_f32 = value; + return simde_v128_from_private(r_); + } + #else + SIMDE_WASM_SIMD128_GENERATE_CONVERSION_FUNCTIONS(SIMDE_POWER_ALTIVEC_VECTOR(float), simde_v128_t, simde_v128_to_altivec_f32, simde_v128_from_altivec_f32) + #endif +#endif /* defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) */ + +/* + * Begin function implementations + */ + +/* load */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load(mem); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_loadu_si128(HEDLEY_REINTERPRET_CAST(const __m128i*, mem)); + #else + simde_v128_t r; + simde_memcpy(&r, mem, sizeof(r)); + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load(mem) simde_wasm_v128_load((mem)) +#endif + +/* store */ + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store (void * mem, simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + wasm_v128_store(mem, a); + #elif defined(SIMDE_X86_SSE2_NATIVE) + _mm_storeu_si128(HEDLEY_REINTERPRET_CAST(__m128i*, mem), a); + #else + simde_memcpy(mem, &a, sizeof(a)); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store(mem, a) simde_wasm_v128_store((mem), (a)) +#endif + +/* make */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_make ( + int8_t c0, int8_t c1, int8_t c2, int8_t c3, int8_t c4, int8_t c5, int8_t c6, int8_t c7, + int8_t c8, int8_t c9, int8_t c10, int8_t c11, int8_t c12, int8_t c13, int8_t c14, int8_t c15) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return + wasm_i8x16_make( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return + _mm_setr_epi8( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + #else + simde_v128_private r_; + + r_.i8[ 0] = c0; + r_.i8[ 1] = c1; + r_.i8[ 2] = c2; + r_.i8[ 3] = c3; + r_.i8[ 4] = c4; + r_.i8[ 5] = c5; + r_.i8[ 6] = c6; + r_.i8[ 7] = c7; + r_.i8[ 8] = c8; + r_.i8[ 9] = c9; + r_.i8[10] = c10; + r_.i8[11] = c11; + r_.i8[12] = c12; + r_.i8[13] = c13; + r_.i8[14] = c14; + r_.i8[15] = c15; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i8x16_make( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_i8x16_make( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_make ( + uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4, uint8_t c5, uint8_t c6, uint8_t c7, + uint8_t c8, uint8_t c9, uint8_t c10, uint8_t c11, uint8_t c12, uint8_t c13, uint8_t c14, uint8_t c15) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return + wasm_u8x16_make( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi8( + HEDLEY_STATIC_CAST(char, c15), HEDLEY_STATIC_CAST(char, c14), HEDLEY_STATIC_CAST(char, c13), HEDLEY_STATIC_CAST(char, c12), + HEDLEY_STATIC_CAST(char, c11), HEDLEY_STATIC_CAST(char, c10), HEDLEY_STATIC_CAST(char, c9), HEDLEY_STATIC_CAST(char, c8), + HEDLEY_STATIC_CAST(char, c7), HEDLEY_STATIC_CAST(char, c6), HEDLEY_STATIC_CAST(char, c5), HEDLEY_STATIC_CAST(char, c4), + HEDLEY_STATIC_CAST(char, c3), HEDLEY_STATIC_CAST(char, c2), HEDLEY_STATIC_CAST(char, c1), HEDLEY_STATIC_CAST(char, c0)); + #else + simde_v128_private r_; + + r_.u8[ 0] = c0; + r_.u8[ 1] = c1; + r_.u8[ 2] = c2; + r_.u8[ 3] = c3; + r_.u8[ 4] = c4; + r_.u8[ 5] = c5; + r_.u8[ 6] = c6; + r_.u8[ 7] = c7; + r_.u8[ 8] = c8; + r_.u8[ 9] = c9; + r_.u8[10] = c10; + r_.u8[11] = c11; + r_.u8[12] = c12; + r_.u8[13] = c13; + r_.u8[14] = c14; + r_.u8[15] = c15; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u8x16_make( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_u8x16_make( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_make ( + int16_t c0, int16_t c1, int16_t c2, int16_t c3, int16_t c4, int16_t c5, int16_t c6, int16_t c7) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_make(c0, c1, c2, c3, c4, c5, c6, c7); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_setr_epi16(c0, c1, c2, c3, c4, c5, c6, c7); + #else + simde_v128_private r_; + + r_.i16[0] = c0; + r_.i16[1] = c1; + r_.i16[2] = c2; + r_.i16[3] = c3; + r_.i16[4] = c4; + r_.i16[5] = c5; + r_.i16[6] = c6; + r_.i16[7] = c7; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i16x8_make(c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_i16x8_make((c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_make ( + uint16_t c0, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_make(c0, c1, c2, c3, c4, c5, c6, c7); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi16( + HEDLEY_STATIC_CAST(short, c7), HEDLEY_STATIC_CAST(short, c6), HEDLEY_STATIC_CAST(short, c5), HEDLEY_STATIC_CAST(short, c4), + HEDLEY_STATIC_CAST(short, c3), HEDLEY_STATIC_CAST(short, c2), HEDLEY_STATIC_CAST(short, c1), HEDLEY_STATIC_CAST(short, c0)); + #else + simde_v128_private r_; + + r_.u16[0] = c0; + r_.u16[1] = c1; + r_.u16[2] = c2; + r_.u16[3] = c3; + r_.u16[4] = c4; + r_.u16[5] = c5; + r_.u16[6] = c6; + r_.u16[7] = c7; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u16x8_make(c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_u16x8_make((c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_make (int32_t c0, int32_t c1, int32_t c2, int32_t c3) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_make(c0, c1, c2, c3); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_setr_epi32(c0, c1, c2, c3); + #else + simde_v128_private r_; + + r_.i32[0] = c0; + r_.i32[1] = c1; + r_.i32[2] = c2; + r_.i32[3] = c3; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_make(c0, c1, c2, c3) simde_wasm_i32x4_make((c0), (c1), (c2), (c3)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_make (uint32_t c0, uint32_t c1, uint32_t c2, uint32_t c3) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_make(c0, c1, c2, c3); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi32( + HEDLEY_STATIC_CAST(int, c3), HEDLEY_STATIC_CAST(int, c2), HEDLEY_STATIC_CAST(int, c1), HEDLEY_STATIC_CAST(int, c0)); + #else + simde_v128_private r_; + + r_.u32[0] = c0; + r_.u32[1] = c1; + r_.u32[2] = c2; + r_.u32[3] = c3; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_make(c0, c1, c2, c3) simde_wasm_u32x4_make((c0), (c1), (c2), (c3)) +#endif + + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_make (int64_t c0, int64_t c1) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_make(c0, c1); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi64x(c1, c0); + #else + simde_v128_private r_; + + r_.i64[0] = c0; + r_.i64[1] = c1; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_make(c0, c1) simde_wasm_i64x2_make((c0), (c1)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_make (uint64_t c0, uint64_t c1) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_make(c0, c1); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_set_epi64x(HEDLEY_STATIC_CAST(int64_t, c1), HEDLEY_STATIC_CAST(int64_t, c0)); + #else + simde_v128_private r_; + + r_.u64[0] = c0; + r_.u64[1] = c1; + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_make(c0, c1) simde_wasm_u64x2_make((c0), (c1)) +#endif + + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_make (simde_float32 c0, simde_float32 c1, simde_float32 c2, simde_float32 c3) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_make(c0, c1, c2, c3); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_setr_ps(c0, c1, c2, c3); + #else + r_.f32[0] = c0; + r_.f32[1] = c1; + r_.f32[2] = c2; + r_.f32[3] = c3; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_make(c0, c1, c2, c3) simde_wasm_f32x4_make((c0), (c1), (c2), (c3)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_make (simde_float64 c0, simde_float64 c1) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_make(c0, c1); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_set_pd(c1, c0); + #else + r_.f64[ 0] = c0; + r_.f64[ 1] = c1; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_make(c0, c1) simde_wasm_f64x2_make((c0), (c1)) +#endif + +/* const */ + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + wasm_i8x16_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_i8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + SIMDE_ASSERT_CONSTANT_(c4); \ + SIMDE_ASSERT_CONSTANT_(c5); \ + SIMDE_ASSERT_CONSTANT_(c6); \ + SIMDE_ASSERT_CONSTANT_(c7); \ + SIMDE_ASSERT_CONSTANT_(c8); \ + SIMDE_ASSERT_CONSTANT_(c9); \ + SIMDE_ASSERT_CONSTANT_(c10); \ + SIMDE_ASSERT_CONSTANT_(c11); \ + SIMDE_ASSERT_CONSTANT_(c12); \ + SIMDE_ASSERT_CONSTANT_(c13); \ + SIMDE_ASSERT_CONSTANT_(c13); \ + SIMDE_ASSERT_CONSTANT_(c15); \ + \ + simde_wasm_i8x16_make( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_i8x16_const ( + int8_t c0, int8_t c1, int8_t c2, int8_t c3, int8_t c4, int8_t c5, int8_t c6, int8_t c7, + int8_t c8, int8_t c9, int8_t c10, int8_t c11, int8_t c12, int8_t c13, int8_t c14, int8_t c15) { + return simde_wasm_i8x16_make( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_i8x16_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_u8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + wasm_u8x16_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_u8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + SIMDE_ASSERT_CONSTANT_(c4); \ + SIMDE_ASSERT_CONSTANT_(c5); \ + SIMDE_ASSERT_CONSTANT_(c6); \ + SIMDE_ASSERT_CONSTANT_(c7); \ + SIMDE_ASSERT_CONSTANT_(c8); \ + SIMDE_ASSERT_CONSTANT_(c9); \ + SIMDE_ASSERT_CONSTANT_(c10); \ + SIMDE_ASSERT_CONSTANT_(c11); \ + SIMDE_ASSERT_CONSTANT_(c12); \ + SIMDE_ASSERT_CONSTANT_(c13); \ + SIMDE_ASSERT_CONSTANT_(c13); \ + SIMDE_ASSERT_CONSTANT_(c15); \ + \ + simde_wasm_u8x16_make( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_u8x16_const ( + uint8_t c0, uint8_t c1, uint8_t c2, uint8_t c3, uint8_t c4, uint8_t c5, uint8_t c6, uint8_t c7, + uint8_t c8, uint8_t c9, uint8_t c10, uint8_t c11, uint8_t c12, uint8_t c13, uint8_t c14, uint8_t c15) { + return simde_wasm_u8x16_make( + c0, c1, c2, c3, c4, c5, c6, c7, + c8, c9, c10, c11, c12, c13, c14, c15); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u8x16_const( \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_u8x16_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + wasm_i16x8_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_i16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + SIMDE_ASSERT_CONSTANT_(c4); \ + SIMDE_ASSERT_CONSTANT_(c5); \ + SIMDE_ASSERT_CONSTANT_(c6); \ + SIMDE_ASSERT_CONSTANT_(c7); \ + \ + simde_wasm_i16x8_make( \ + c0, c1, c2, c3, c4, c5, c6, c7); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_i16x8_const ( + int16_t c0, int16_t c1, int16_t c2, int16_t c3, int16_t c4, int16_t c5, int16_t c6, int16_t c7) { + return simde_wasm_i16x8_make( + c0, c1, c2, c3, c4, c5, c6, c7); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_i16x8_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_u16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + wasm_u16x8_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_u16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + SIMDE_ASSERT_CONSTANT_(c4); \ + SIMDE_ASSERT_CONSTANT_(c5); \ + SIMDE_ASSERT_CONSTANT_(c6); \ + SIMDE_ASSERT_CONSTANT_(c7); \ + \ + simde_wasm_u16x8_make( \ + c0, c1, c2, c3, c4, c5, c6, c7); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_u16x8_const ( + uint16_t c0, uint16_t c1, uint16_t c2, uint16_t c3, uint16_t c4, uint16_t c5, uint16_t c6, uint16_t c7) { + return simde_wasm_u16x8_make( + c0, c1, c2, c3, c4, c5, c6, c7); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u16x8_const( \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_u16x8_const( \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i32x4_const( \ + c0, c1, c2, c3) \ + wasm_i32x4_const( \ + (c0), (c1), (c2), (c3)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_i32x4_const( \ + c0, c1, c2, c3) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + \ + simde_wasm_i32x4_make( \ + c0, c1, c2, c3); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_i32x4_const ( + int32_t c0, int32_t c1, int32_t c2, int32_t c3) { + return simde_wasm_i32x4_make( + c0, c1, c2, c3); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i32x4_const( \ + c0, c1, c2, c3) \ + simde_wasm_i32x4_const( \ + (c0), (c1), (c2), (c3)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_u32x4_const( \ + c0, c1, c2, c3) \ + wasm_u32x4_const( \ + (c0), (c1), (c2), (c3)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_u32x4_const( \ + c0, c1, c2, c3) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + \ + simde_wasm_u32x4_make( \ + c0, c1, c2, c3); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_u32x4_const ( + uint32_t c0, uint32_t c1, uint32_t c2, uint32_t c3) { + return simde_wasm_u32x4_make( + c0, c1, c2, c3); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u32x4_const( \ + c0, c1, c2, c3) \ + simde_wasm_u32x4_const( \ + (c0), (c1), (c2), (c3)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i64x2_const( \ + c0, c1) \ + wasm_i64x2_const( \ + (c0), (c1)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_i64x2_const( \ + c0, c1) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + \ + simde_wasm_i64x2_make( \ + c0, c1); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_i64x2_const ( + int64_t c0, int64_t c1) { + return simde_wasm_i64x2_make( + c0, c1); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i64x2_const( \ + c0, c1) \ + simde_wasm_i64x2_const( \ + (c0), (c1)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_u64x2_const( \ + c0, c1) \ + wasm_u64x2_const( \ + (c0), (c1)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_u64x2_const( \ + c0, c1) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + \ + simde_wasm_u64x2_make( \ + c0, c1); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_u64x2_const ( + uint64_t c0, uint64_t c1) { + return simde_wasm_u64x2_make( + c0, c1); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_u64x2_const( \ + c0, c1) \ + simde_wasm_u64x2_const( \ + (c0), (c1)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_f32x4_const( \ + c0, c1, c2, c3) \ + wasm_f32x4_const( \ + (c0), (c1), (c2), (c3)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_f32x4_const( \ + c0, c1, c2, c3) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + SIMDE_ASSERT_CONSTANT_(c2); \ + SIMDE_ASSERT_CONSTANT_(c3); \ + \ + simde_wasm_f32x4_make( \ + c0, c1, c2, c3); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_f32x4_const ( + simde_float32 c0, simde_float32 c1, simde_float32 c2, simde_float32 c3) { + return simde_wasm_f32x4_make( + c0, c1, c2, c3); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_f32x4_const( \ + c0, c1, c2, c3) \ + simde_wasm_f32x4_const( \ + (c0), (c1), (c2), (c3)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_f64x2_const( \ + c0, c1) \ + wasm_f64x2_const( \ + (c0), (c1)) +#elif defined(SIMDE_STATEMENT_EXPR_) && defined(SIMDE_ASSERT_CONSTANT_) && defined(SIMDE_STATIC_ASSERT) + #define \ + simde_wasm_f64x2_const( \ + c0, c1) \ + SIMDE_STATEMENT_EXPR_(({ \ + SIMDE_ASSERT_CONSTANT_(c0); \ + SIMDE_ASSERT_CONSTANT_(c1); \ + \ + simde_wasm_f64x2_make( \ + c0, c1); \ + })) +#else + SIMDE_FUNCTION_ATTRIBUTES + simde_v128_t + simde_wasm_f64x2_const ( + simde_float64 c0, simde_float64 c1) { + return simde_wasm_f64x2_make( + c0, c1); + } +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_const(c0, c1) simde_wasm_f64x2_const((c0), (c1)) +#endif + +/* splat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_splat (int8_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi8(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vdupq_n_s8(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i8 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_splat(a) simde_wasm_i8x16_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_splat (uint8_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi8(HEDLEY_STATIC_CAST(int8_t, a)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vdupq_n_u8(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u8 = vec_splats(HEDLEY_STATIC_CAST(unsigned char, a)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_splat(a) simde_wasm_u8x16_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i8x16_const_splat(a) wasm_i8x16_const_splat((a)) +#else + #define simde_wasm_i8x16_const_splat(a) simde_wasm_i8x16_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_const_splat(a) simde_wasm_i8x16_const_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u8x16_const_splat(a) wasm_u8x16_const_splat((a)) +#else + #define simde_wasm_u8x16_const_splat(a) simde_wasm_u8x16_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_const_splat(a) simde_wasm_u8x16_const_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_splat (int16_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi16(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vdupq_n_s16(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i16 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_splat(a) simde_wasm_i16x8_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_splat (uint16_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi16(HEDLEY_STATIC_CAST(int16_t, a)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vdupq_n_u16(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u16 = vec_splats(HEDLEY_STATIC_CAST(unsigned short, a)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_splat(a) simde_wasm_u16x8_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i16x8_const_splat(a) wasm_i16x8_const_splat((a)) +#else + #define simde_wasm_i16x8_const_splat(a) simde_wasm_i16x8_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_const_splat(a) simde_wasm_i16x8_const_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u16x8_const_splat(a) wasm_u16x8_const_splat((a)) +#else + #define simde_wasm_u16x8_const_splat(a) simde_wasm_u16x8_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_const_splat(a) simde_wasm_u16x8_const_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_splat (int32_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi32(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vdupq_n_s32(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i32 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_splat(a) simde_wasm_i32x4_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_splat (uint32_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_set1_epi32(HEDLEY_STATIC_CAST(int32_t, a)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vdupq_n_u32(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u32 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_splat(a) simde_wasm_u32x4_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i32x4_const_splat(a) wasm_i32x4_const_splat((a)) +#else + #define simde_wasm_i32x4_const_splat(a) simde_wasm_i32x4_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_const_splat(a) simde_wasm_i32x4_const_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u32x4_const_splat(a) wasm_u32x4_const_splat((a)) +#else + #define simde_wasm_u32x4_const_splat(a) simde_wasm_u32x4_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_const_splat(a) simde_wasm_u32x4_const_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_splat (int64_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_MSVC_VERSION) || HEDLEY_MSVC_VERSION_CHECK(19,0,0)) + r_.sse_m128i = _mm_set1_epi64x(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vdupq_n_s64(a); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i64 = vec_splats(HEDLEY_STATIC_CAST(signed long long, a)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_splat(a) simde_wasm_i64x2_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_splat (uint64_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_MSVC_VERSION) || HEDLEY_MSVC_VERSION_CHECK(19,0,0)) + r_.sse_m128i = _mm_set1_epi64x(HEDLEY_STATIC_CAST(int64_t, a)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vdupq_n_u64(a); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u64 = vec_splats(HEDLEY_STATIC_CAST(unsigned long long, a)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_splat(a) simde_wasm_u64x2_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i64x2_const_splat(a) wasm_i64x2_const_splat((a)) +#else + #define simde_wasm_i64x2_const_splat(a) simde_wasm_i64x2_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_const_splat(a) simde_wasm_i64x2_const_splat((a)) +#endif + +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u64x2_const_splat(a) wasm_u64x2_const_splat((a)) +#else + #define simde_wasm_u64x2_const_splat(a) simde_wasm_u64x2_splat(a); +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_const_splat(a) simde_wasm_i64x2_const_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_splat (simde_float32 a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_set1_ps(a); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vdupq_n_f32(a); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE) + r_.altivec_f32 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_splat(a) simde_wasm_f32x4_splat((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_splat (simde_float64 a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_splat(a); + #else + simde_v128_private r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_set1_pd(a); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vdupq_n_f64(a); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_f64 = vec_splats(a); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_splat(a) simde_wasm_f64x2_splat((a)) +#endif + +/* load_splat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load8_splat (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load8_splat(mem); + #else + int8_t v; + simde_memcpy(&v, mem, sizeof(v)); + return simde_wasm_i8x16_splat(v); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load8_splat(mem) simde_wasm_v128_load8_splat((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load16_splat (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load16_splat(mem); + #else + int16_t v; + simde_memcpy(&v, mem, sizeof(v)); + return simde_wasm_i16x8_splat(v); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load16_splat(mem) simde_wasm_v128_load16_splat((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load32_splat (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load32_splat(mem); + #else + int32_t v; + simde_memcpy(&v, mem, sizeof(v)); + return simde_wasm_i32x4_splat(v); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load32_splat(mem) simde_wasm_v128_load32_splat((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load64_splat (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load64_splat(mem); + #else + int64_t v; + simde_memcpy(&v, mem, sizeof(v)); + return simde_wasm_i64x2_splat(v); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load64_splat(mem) simde_wasm_v128_load64_splat((mem)) +#endif + +/* extract_lane + * + * Note that, unlike normal WASM SIMD128 we return intN_t instead of + * int for sizeof(X) <= sizeof(int). This is done for portability; + * the regular API doesn't have to worry about things like int being + * 16 bits (like on AVR). + * + * This does mean that code which works in SIMDe may not work without + * changes on WASM, but luckily the necessary changes (i.e., casting + * the return values to smaller type when assigning to the smaller + * type) mean the code will work in *both* SIMDe and a native + * implementation. If you use the simde_* prefixed functions it will + * always work. */ + +SIMDE_FUNCTION_ATTRIBUTES +int8_t +simde_wasm_i8x16_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.i8[lane & 15]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i8x16_extract_lane(a, lane) HEDLEY_STATIC_CAST(int8_t, wasm_i8x16_extract_lane((a), (lane))) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #define simde_wasm_i8x16_extract_lane(a, lane) HEDLEY_STATIC_CAST(int8_t, _mm_extract_epi8(simde_v128_to_m128i(a), (lane) & 15)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define simde_wasm_i8x16_extract_lane(a, lane) vgetq_lane_s8(simde_v128_to_neon_i8(a), (lane) & 15) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_extract_lane(a, lane) simde_wasm_i8x16_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +int16_t +simde_wasm_i16x8_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.i16[lane & 7]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i16x8_extract_lane(a, lane) HEDLEY_STATIC_CAST(int16_t, wasm_i16x8_extract_lane((a), (lane))) +#elif defined(SIMDE_X86_SSE2_NATIVE) + #define simde_wasm_i16x8_extract_lane(a, lane) HEDLEY_STATIC_CAST(int16_t, _mm_extract_epi16((a), (lane) & 7)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i16x8_extract_lane(a, lane) vgetq_lane_s16(simde_v128_to_neon_i16(a), (lane) & 7) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extract_lane(a, lane) simde_wasm_i16x8_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +int32_t +simde_wasm_i32x4_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.i32[lane & 3]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i32x4_extract_lane(a, lane) HEDLEY_STATIC_CAST(int32_t, wasm_i32x4_extract_lane((a), (lane))) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #define simde_wasm_i32x4_extract_lane(a, lane) HEDLEY_STATIC_CAST(int32_t, _mm_extract_epi32((a), (lane) & 3)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i32x4_extract_lane(a, lane) vgetq_lane_s32(simde_v128_to_neon_i32(a), (lane) & 3) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extract_lane(a, lane) simde_wasm_i32x4_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +int64_t +simde_wasm_i64x2_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.i64[lane & 1]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i64x2_extract_lane(a, lane) HEDLEY_STATIC_CAST(int64_t, wasm_i64x2_extract_lane((a), (lane))) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) && defined(SIMDE_ARCH_AMD64) + #define simde_wasm_i64x2_extract_lane(a, lane) HEDLEY_STATIC_CAST(int64_t, _mm_extract_epi64((a), (lane) & 1)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i64x2_extract_lane(a, lane) vgetq_lane_s64(simde_v128_to_neon_i64(a), (lane) & 1) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extract_lane(a, lane) simde_wasm_i64x2_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint8_t +simde_wasm_u8x16_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.u8[lane & 15]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u8x16_extract_lane(a, lane) HEDLEY_STATIC_CAST(uint8_t, wasm_u8x16_extract_lane((a), (lane))) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define simde_wasm_u8x16_extract_lane(a, lane) vgetq_lane_u8(simde_v128_to_neon_u8(a), (lane) & 15) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_extract_lane(a, lane) simde_wasm_u8x16_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint16_t +simde_wasm_u16x8_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.u16[lane & 7]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u16x8_extract_lane(a, lane) HEDLEY_STATIC_CAST(uint16_t, wasm_u16x8_extract_lane((a), (lane))) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_u16x8_extract_lane(a, lane) vgetq_lane_u16(simde_v128_to_neon_u16(a), (lane) & 7) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extract_lane(a, lane) simde_wasm_u16x8_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_u32x4_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.u32[lane & 3]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u32x4_extract_lane(a, lane) HEDLEY_STATIC_CAST(uint32_t, wasm_u32x4_extract_lane((a), (lane))) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_u32x4_extract_lane(a, lane) vgetq_lane_u32(simde_v128_to_neon_u32(a), (lane) & 3) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extract_lane(a, lane) simde_wasm_u32x4_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint64_t +simde_wasm_u64x2_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.u64[lane & 1]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_u64x2_extract_lane(a, lane) HEDLEY_STATIC_CAST(uint64_t, wasm_u64x2_extract_lane((a), (lane))) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_u64x2_extract_lane(a, lane) vgetq_lane_u64(simde_v128_to_neon_u64(a), (lane) & 1) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extract_lane(a, lane) simde_wasm_u64x2_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_float32 +simde_wasm_f32x4_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.f32[lane & 3]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_f32x4_extract_lane(a, lane) wasm_f32x4_extract_lane((a), (lane)) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #define simde_wasm_f32x4(a, lane) _mm_extract_ps(simde_v128_to_m128(a), (lane) & 3) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_f32x4_extract_lane(a, lane) vgetq_lane_f32(simde_v128_to_neon_f32(a), (lane) & 3) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_extract_lane(a, lane) simde_wasm_f32x4_extract_lane((a), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_float64 +simde_wasm_f64x2_extract_lane (simde_v128_t a, const int lane) { + simde_v128_private a_ = simde_v128_to_private(a); + return a_.f64[lane & 1]; +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_f64x2_extract_lane(a, lane) wasm_f64x2_extract_lane((a), (lane)) +#elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_f64x2_extract_lane(a, lane) vgetq_lane_f64(simde_v128_to_neon_f64(a), (lane) & 1) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_extract_lane(a, lane) simde_wasm_f64x2_extract_lane((a), (lane)) +#endif + +/* replace_lane */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_replace_lane (simde_v128_t a, const int lane, int8_t value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.i8[lane & 15] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i8x16_replace_lane(a, lane, value) wasm_i8x16_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #if defined(__clang__) && !SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0) + #define simde_wasm_i8x16_replace_lane(a, lane, value) HEDLEY_REINTERPRET_CAST(simde_v128_t, _mm_insert_epi8((a), (value), (lane) & 15)) + #else + #define simde_wasm_i8x16_replace_lane(a, lane, value) _mm_insert_epi8((a), (value), (lane) & 15) + #endif +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + #define simde_wasm_i8x16_replace_lane(a, lane, value) simde_v128_from_neon_i8(vsetq_lane_s8((value), simde_v128_to_neon_i8(a), (lane) & 15)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_replace_lane(a, lane, value) simde_wasm_i8x16_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_replace_lane (simde_v128_t a, const int lane, int16_t value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.i16[lane & 7] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i16x8_replace_lane(a, lane, value) wasm_i16x8_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_X86_SSE2_NATIVE) + #define simde_wasm_i16x8_replace_lane(a, lane, value) _mm_insert_epi16((a), (value), (lane) & 7) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i16x8_replace_lane(a, lane, value) simde_v128_from_neon_i16(vsetq_lane_s16((value), simde_v128_to_neon_i16(a), (lane) & 7)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_replace_lane(a, lane, value) simde_wasm_i16x8_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_replace_lane (simde_v128_t a, const int lane, int32_t value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.i32[lane & 3] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i32x4_replace_lane(a, lane, value) wasm_i32x4_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) + #if defined(__clang__) && !SIMDE_DETECT_CLANG_VERSION_CHECK(7,0,0) + #define simde_wasm_i32x4_replace_lane(a, lane, value) HEDLEY_REINTERPRET_CAST(simde_v128_t, _mm_insert_epi32((a), (value), (lane) & 3)) + #else + #define simde_wasm_i32x4_replace_lane(a, lane, value) _mm_insert_epi32((a), (value), (lane) & 3) + #endif +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i32x4_replace_lane(a, lane, value) simde_v128_from_neon_i32(vsetq_lane_s32((value), simde_v128_to_neon_i32(a), (lane) & 3)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_replace_lane(a, lane, value) simde_wasm_i32x4_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_replace_lane (simde_v128_t a, const int lane, int64_t value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.i64[lane & 1] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_i64x2_replace_lane(a, lane, value) wasm_i64x2_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_X86_SSE4_1_NATIVE) && defined(SIMDE_ARCH_AMD64) + #define simde_wasm_i64x2_replace_lane(a, lane, value) _mm_insert_epi64((a), (value), (lane) & 1) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_i64x2_replace_lane(a, lane, value) simde_v128_from_neon_i64(vsetq_lane_s64((value), simde_v128_to_neon_i64(a), (lane) & 1)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_replace_lane(a, lane, value) simde_wasm_i64x2_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_replace_lane (simde_v128_t a, const int lane, simde_float32 value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.f32[lane & 3] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_f32x4_replace_lane(a, lane, value) wasm_f32x4_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_f32x4_replace_lane(a, lane, value) simde_v128_from_neon_f32(vsetq_lane_f32((value), simde_v128_to_neon_f32(a), (lane) & 3)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_replace_lane(a, lane, value) simde_wasm_f32x4_replace_lane((a), (lane), (value)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_replace_lane (simde_v128_t a, const int lane, simde_float64 value) { + simde_v128_private a_ = simde_v128_to_private(a); + a_.f64[lane & 1] = value; + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_f64x2_replace_lane(a, lane, value) wasm_f64x2_replace_lane((a), (lane), (value)) +#elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) && !defined(SIMDE_BUG_CLANG_BAD_VGET_SET_LANE_TYPES) + #define simde_wasm_f64x2_replace_lane(a, lane, value) simde_v128_from_neon_f64(vsetq_lane_f64((value), simde_v128_to_neon_f64(a), (lane) & 1)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_replace_lane(a, lane, value) simde_wasm_f64x2_replace_lane((a), (lane), (value)) +#endif + +/* eq */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vceqq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 == b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] == b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_eq(a, b) simde_wasm_i8x16_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vceqq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 == b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] == b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_eq(a, b) simde_wasm_i16x8_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vceqq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 == b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] == b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_eq(a, b) simde_wasm_i32x4_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi64(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vceqq_s64(a_.neon_i64, b_.neon_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 == b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] == b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_eq(a, b) simde_wasm_i64x2_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmpeq_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vceqq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 == b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] == b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_eq(a, b) simde_wasm_f32x4_eq((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_eq (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_eq(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmpeq_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vceqq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 == b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] == b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_eq(a, b) simde_wasm_f64x2_eq((a), (b)) +#endif + +/* ne */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vmvnq_u8(vceqq_s8(a_.neon_i8, b_.neon_i8)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 != b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] != b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_ne(a, b) simde_wasm_i8x16_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmvnq_u16(vceqq_s16(a_.neon_i16, b_.neon_i16)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 != b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] != b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_ne(a, b) simde_wasm_i16x8_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmvnq_u32(vceqq_s32(a_.neon_i32, b_.neon_i32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 != b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] != b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_ne(a, b) simde_wasm_i32x4_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u32 = vmvnq_u32(vreinterpretq_u32_u64(vceqq_s64(a_.neon_i64, b_.neon_i64))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 != b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] != b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_ne(a, b) simde_wasm_i64x2_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmpneq_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmvnq_u32(vceqq_f32(a_.neon_f32, b_.neon_f32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 != b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] != b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_ne(a, b) simde_wasm_f32x4_ne((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_ne (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_ne(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmpneq_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u32 = vmvnq_u32(vreinterpretq_u32_u64(vceqq_f64(a_.neon_f64, b_.neon_f64))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 != b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] != b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_ne(a, b) simde_wasm_f64x2_ne((a), (b)) +#endif + +/* lt */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmplt_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcltq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed char), vec_cmplt(a_.altivec_i8, b_.altivec_i8)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 < b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] < b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_lt(a, b) simde_wasm_i8x16_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmplt_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcltq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed short), vec_cmplt(a_.altivec_i16, b_.altivec_i16)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 < b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] < b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_lt(a, b) simde_wasm_i16x8_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cmplt_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcltq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), vec_cmplt(a_.altivec_i32, b_.altivec_i32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 < b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] < b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_lt(a, b) simde_wasm_i32x4_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcltq_s64(a_.neon_i64, b_.neon_i64); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + int32x4_t tmp = vorrq_s32( + vandq_s32( + vreinterpretq_s32_u32(vceqq_s32(b_.neon_i32, a_.neon_i32)), + vsubq_s32(a_.neon_i32, b_.neon_i32) + ), + vreinterpretq_s32_u32(vcgtq_s32(b_.neon_i32, a_.neon_i32)) + ); + int32x4x2_t trn = vtrnq_s32(tmp, tmp); + r_.neon_i32 = trn.val[1]; + #elif defined(SIMDE_X86_SSE4_2_NATIVE) + r_.sse_m128i = _mm_cmpgt_epi64(b_.sse_m128i, a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://stackoverflow.com/a/65175746 */ + r_.sse_m128i = + _mm_shuffle_epi32( + _mm_or_si128( + _mm_and_si128( + _mm_cmpeq_epi32(b_.sse_m128i, a_.sse_m128i), + _mm_sub_epi64(a_.sse_m128i, b_.sse_m128i) + ), + _mm_cmpgt_epi32( + b_.sse_m128i, + a_.sse_m128i + ) + ), + _MM_SHUFFLE(3, 3, 1, 1) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed int) tmp = + vec_or( + vec_and( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), vec_cmpeq(b_.altivec_i32, a_.altivec_i32)), + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), vec_sub( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed long long), a_.altivec_i32), + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed long long), b_.altivec_i32) + )) + ), + vec_cmpgt(b_.altivec_i32, a_.altivec_i32) + ); + r_.altivec_i32 = vec_mergeo(tmp, tmp); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 < b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] < b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_lt(a, b) simde_wasm_i64x2_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcltq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_cmplt(a_.altivec_u8, b_.altivec_u8)); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i tmp = _mm_subs_epu8(b_.sse_m128i, a_.sse_m128i); + r_.sse_m128i = _mm_adds_epu8(tmp, _mm_sub_epi8(_mm_setzero_si128(), tmp)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), a_.u8 < b_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] < b_.u8[i]) ? ~UINT8_C(0) : UINT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_lt(a, b) simde_wasm_u8x16_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcltq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned short), vec_cmplt(a_.altivec_u16, b_.altivec_u16)); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i tmp = _mm_subs_epu16(b_.sse_m128i, a_.sse_m128i); + r_.sse_m128i = _mm_adds_epu16(tmp, _mm_sub_epi16(_mm_setzero_si128(), tmp)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), a_.u16 < b_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] < b_.u16[i]) ? ~UINT16_C(0) : UINT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_lt(a, b) simde_wasm_u16x8_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcltq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_xor_si128( + _mm_cmpgt_epi32(b_.sse_m128i, a_.sse_m128i), + _mm_srai_epi32(_mm_xor_si128(b_.sse_m128i, a_.sse_m128i), 31) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned int), vec_cmplt(a_.altivec_u32, b_.altivec_u32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.u32 < b_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] < b_.u32[i]) ? ~UINT32_C(0) : UINT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_lt(a, b) simde_wasm_u32x4_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmplt_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcltq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmplt(a_.altivec_f32, b_.altivec_f32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 < b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] < b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_lt(a, b) simde_wasm_f32x4_lt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_lt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_lt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmplt_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcltq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(double), vec_cmplt(a_.altivec_f64, b_.altivec_f64)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 < b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] < b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_lt(a, b) simde_wasm_f64x2_lt((a), (b)) +#endif + +/* gt */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_gt(a, b); + #else + return simde_wasm_i8x16_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_gt(a, b) simde_wasm_i8x16_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_gt(a, b); + #else + return simde_wasm_i16x8_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_gt(a, b) simde_wasm_i16x8_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_gt(a, b); + #else + return simde_wasm_i32x4_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_gt(a, b) simde_wasm_i32x4_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_gt(a, b); + #else + return simde_wasm_i64x2_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_gt(a, b) simde_wasm_i64x2_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_gt(a, b); + #else + return simde_wasm_u8x16_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_gt(a, b) simde_wasm_u8x16_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_gt(a, b); + #else + return simde_wasm_u16x8_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_gt(a, b) simde_wasm_u16x8_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_gt(a, b); + #else + return simde_wasm_u32x4_lt(b, a); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_gt(a, b) simde_wasm_u32x4_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_gt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmpgt_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcgtq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_cmpgt(a_.altivec_f32, b_.altivec_f32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 > b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] > b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_gt(a, b) simde_wasm_f32x4_gt((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_gt (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_gt(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmpgt_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcgtq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(double), vec_cmpgt(a_.altivec_f64, b_.altivec_f64)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.f64 > b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] > b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_gt(a, b) simde_wasm_f64x2_gt((a), (b)) +#endif + +/* le */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi8(a_.sse_m128i, _mm_min_epi8(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcleq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 <= b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] <= b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_le(a, b) simde_wasm_i8x16_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi16(a_.sse_m128i, _mm_min_epi16(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcleq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 <= b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] <= b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_le(a, b) simde_wasm_i16x8_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi32(a_.sse_m128i, _mm_min_epi32(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcleq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 <= b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] <= b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_le(a, b) simde_wasm_i32x4_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi64(a_.sse_m128i, _mm_min_epi64(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcleq_s64(a_.neon_i64, b_.neon_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 <= b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] <= b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_le(a, b) simde_wasm_i64x2_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcleq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), a_.u8 <= b_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] <= b_.u8[i]) ? ~UINT8_C(0) : UINT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_le(a, b) simde_wasm_u8x16_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcleq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), a_.u16 <= b_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] <= b_.u16[i]) ? ~UINT16_C(0) : UINT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_le(a, b) simde_wasm_u16x8_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcleq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.u32 <= b_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] <= b_.u32[i]) ? ~UINT32_C(0) : UINT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_le(a, b) simde_wasm_u32x4_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmple_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcleq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 <= b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] <= b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_le(a, b) simde_wasm_f32x4_le((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_le (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_le(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmple_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcleq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 <= b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] <= b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_le(a, b) simde_wasm_f64x2_le((a), (b)) +#endif + +/* ge */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi8(_mm_min_epi8(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcgeq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 >= b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] >= b_.i8[i]) ? ~INT8_C(0) : INT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_ge(a, b) simde_wasm_i8x16_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi16(_mm_min_epi16(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcgeq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 >= b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] >= b_.i16[i]) ? ~INT16_C(0) : INT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_ge(a, b) simde_wasm_i16x8_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi32(_mm_min_epi32(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcgeq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 >= b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] >= b_.i32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_ge(a, b) simde_wasm_i32x4_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi64(_mm_min_epi64(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcgeq_s64(a_.neon_i64, b_.neon_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 >= b_.i64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] >= b_.i64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_ge(a, b) simde_wasm_i64x2_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi8(_mm_min_epu8(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vcgeq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), a_.u8 >= b_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] >= b_.u8[i]) ? ~UINT8_C(0) : UINT8_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_ge(a, b) simde_wasm_u8x16_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi16(_mm_min_epu16(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vcgeq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), a_.u16 >= b_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] >= b_.u16[i]) ? ~UINT16_C(0) : UINT16_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_ge(a, b) simde_wasm_u16x8_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cmpeq_epi32(_mm_min_epu32(a_.sse_m128i, b_.sse_m128i), b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcgeq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.u32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.u32 >= b_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] >= b_.u32[i]) ? ~UINT32_C(0) : UINT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_ge(a, b) simde_wasm_u32x4_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cmpge_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcgeq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 >= b_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.i32[i] = (a_.f32[i] >= b_.f32[i]) ? ~INT32_C(0) : INT32_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_ge(a, b) simde_wasm_f32x4_ge((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_ge (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_ge(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cmpge_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vcgeq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f64 >= b_.f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.i64[i] = (a_.f64[i] >= b_.f64[i]) ? ~INT64_C(0) : INT64_C(0); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_ge(a, b) simde_wasm_f64x2_ge((a), (b)) +#endif + +/* not */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_not (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_not(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_xor_si128(a_.sse_m128i, _mm_set1_epi32(~INT32_C(0))); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmvnq_s32(a_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = ~a_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = ~(a_.i32f[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_not(a) simde_wasm_v128_not((a)) +#endif + +/* and */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_and (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_and(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_and_si128(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vandq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = a_.i32f & b_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = a_.i32f[i] & b_.i32f[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_and(a, b) simde_wasm_v128_and((a), (b)) +#endif + +/* or */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_or (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_or(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_or_si128(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vorrq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = a_.i32f | b_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = a_.i32f[i] | b_.i32f[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_or(a, b) simde_wasm_v128_or((a), (b)) +#endif + +/* xor */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_xor (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_xor(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_xor_si128(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = veorq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = a_.i32f ^ b_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = a_.i32f[i] ^ b_.i32f[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_xor(a, b) simde_wasm_v128_xor((a), (b)) +#endif + +/* andnot */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_andnot (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_andnot(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_andnot_si128(b_.sse_m128i, a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vbicq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = a_.i32f & ~b_.i32f; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = a_.i32f[i] & ~b_.i32f[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_andnot(a, b) simde_wasm_v128_andnot((a), (b)) +#endif + +/* bitselect */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_bitselect (simde_v128_t a, simde_v128_t b, simde_v128_t mask) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_bitselect(a, b, mask); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + mask_ = simde_v128_to_private(mask), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_ternarylogic_epi32(mask_.sse_m128i, a_.sse_m128i, b_.sse_m128i, 0xca); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128 (mask_.sse_m128i, a_.sse_m128i), + _mm_andnot_si128(mask_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vbslq_s32(mask_.neon_u32, a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i32 = vec_sel(b_.altivec_i32, a_.altivec_i32, mask_.altivec_u32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32f = (a_.i32f & mask_.i32f) | (b_.i32f & ~mask_.i32f); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32f) / sizeof(r_.i32f[0])) ; i++) { + r_.i32f[i] = (a_.i32f[i] & mask_.i32f[i]) | (b_.i32f[i] & ~mask_.i32f[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_bitselect(a, b, c) simde_wasm_v128_bitselect((a), (b), (c)) +#endif + +/* bitmask */ + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_i8x16_bitmask (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_bitmask(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + uint32_t r = 0; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, _mm_movemask_epi8(a_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + /* https://github.com/WebAssembly/simd/pull/201#issue-380682845 */ + static const uint8_t md[16] = { + 1 << 0, 1 << 1, 1 << 2, 1 << 3, + 1 << 4, 1 << 5, 1 << 6, 1 << 7, + 1 << 0, 1 << 1, 1 << 2, 1 << 3, + 1 << 4, 1 << 5, 1 << 6, 1 << 7, + }; + + /* Extend sign bit over entire lane */ + uint8x16_t extended = vreinterpretq_u8_s8(vshrq_n_s8(a_.neon_i8, 7)); + /* Clear all but the bit we're interested in. */ + uint8x16_t masked = vandq_u8(vld1q_u8(md), extended); + /* Alternate bytes from low half and high half */ + uint8x8x2_t tmp = vzip_u8(vget_low_u8(masked), vget_high_u8(masked)); + uint16x8_t x = vreinterpretq_u16_u8(vcombine_u8(tmp.val[0], tmp.val[1])); + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r = vaddvq_u16(x); + #else + uint64x2_t t64 = vpaddlq_u32(vpaddlq_u16(x)); + r = + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 0)) + + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 1)); + #endif + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && defined(SIMDE_BUG_CLANG_50932) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_bperm(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a_.altivec_u64), idx)); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(|:r) + for (size_t i = 0 ; i < (sizeof(a_.i8) / sizeof(a_.i8[0])) ; i++) { + r |= HEDLEY_STATIC_CAST(uint32_t, (a_.i8[i] < 0) << i); + } + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_bitmask(a) simde_wasm_i8x16_bitmask((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_i16x8_bitmask (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_bitmask(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + uint32_t r = 0; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, _mm_movemask_epi8(_mm_packs_epi16(a_.sse_m128i, _mm_setzero_si128()))); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + static const uint16_t md[8] = { + 1 << 0, 1 << 1, 1 << 2, 1 << 3, + 1 << 4, 1 << 5, 1 << 6, 1 << 7, + }; + + uint16x8_t extended = vreinterpretq_u16_s16(vshrq_n_s16(a_.neon_i16, 15)); + uint16x8_t masked = vandq_u16(vld1q_u16(md), extended); + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r = vaddvq_u16(masked); + #else + uint64x2_t t64 = vpaddlq_u32(vpaddlq_u16(masked)); + r = + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 0)) + + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 1)); + #endif + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && defined(SIMDE_BUG_CLANG_50932) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 112, 96, 80, 64, 48, 32, 16, 0, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_bperm(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a_.altivec_u64), idx)); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 112, 96, 80, 64, 48, 32, 16, 0, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(|:r) + for (size_t i = 0 ; i < (sizeof(a_.i16) / sizeof(a_.i16[0])) ; i++) { + r |= HEDLEY_STATIC_CAST(uint32_t, (a_.i16[i] < 0) << i); + } + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_bitmask(a) simde_wasm_i16x8_bitmask((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_i32x4_bitmask (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_bitmask(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + uint32_t r = 0; + + #if defined(SIMDE_X86_SSE_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, _mm_movemask_ps(a_.sse_m128)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + static const uint32_t md[4] = { + 1 << 0, 1 << 1, 1 << 2, 1 << 3 + }; + + uint32x4_t extended = vreinterpretq_u32_s32(vshrq_n_s32(a_.neon_i32, 31)); + uint32x4_t masked = vandq_u32(vld1q_u32(md), extended); + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, vaddvq_u32(masked)); + #else + uint64x2_t t64 = vpaddlq_u32(masked); + r = + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 0)) + + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(t64, 1)); + #endif + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && defined(SIMDE_BUG_CLANG_50932) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 96, 64, 32, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_bperm(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a_.altivec_u64), idx)); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 96, 64, 32, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(|:r) + for (size_t i = 0 ; i < (sizeof(a_.i32) / sizeof(a_.i32[0])) ; i++) { + r |= HEDLEY_STATIC_CAST(uint32_t, (a_.i32[i] < 0) << i); + } + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_bitmask(a) simde_wasm_i32x4_bitmask((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +uint32_t +simde_wasm_i64x2_bitmask (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_bitmask(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + uint32_t r = 0; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r = HEDLEY_STATIC_CAST(uint32_t, _mm_movemask_pd(a_.sse_m128d)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + HEDLEY_DIAGNOSTIC_PUSH + SIMDE_DIAGNOSTIC_DISABLE_VECTOR_CONVERSION_ + uint64x2_t shifted = vshrq_n_u64(a_.neon_u64, 63); + r = + HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(shifted, 0)) + + (HEDLEY_STATIC_CAST(uint32_t, vgetq_lane_u64(shifted, 1)) << 1); + HEDLEY_DIAGNOSTIC_POP + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && defined(SIMDE_BUG_CLANG_50932) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 64, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), vec_bperm(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned __int128), a_.altivec_u64), idx)); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) idx = { 64, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) res = vec_bperm(a_.altivec_u8, idx); + r = HEDLEY_STATIC_CAST(uint32_t, vec_extract(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed int), res), 2)); + #else + SIMDE_VECTORIZE_REDUCTION(|:r) + for (size_t i = 0 ; i < (sizeof(a_.i64) / sizeof(a_.i64[0])) ; i++) { + r |= HEDLEY_STATIC_CAST(uint32_t, (a_.i64[i] < 0) << i); + } + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_bitmask(a) simde_wasm_i64x2_bitmask((a)) +#endif + +/* abs */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_abs_epi8(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vabsq_s8(a_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_abs(a_.altivec_i8); + #elif defined(SIMDE_VECTOR_SCALAR) + __typeof__(r_.i8) mask = HEDLEY_REINTERPRET_CAST(__typeof__(mask), a_.i8 < 0); + r_.i8 = (-a_.i8 & mask) | (a_.i8 & ~mask); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] < INT8_C(0)) ? -a_.i8[i] : a_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_abs(a) simde_wasm_i8x16_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_abs_epi16(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vabsq_s16(a_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_abs(a_.altivec_i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] < INT8_C(0)) ? -a_.i16[i] : a_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_abs(a) simde_wasm_i16x8_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_abs_epi32(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i32 = vabsq_s32(a_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_abs(a_.altivec_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i32) z = { 0, }; + __typeof__(r_.i32) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 < z); + r_.i32 = (-a_.i32 & m) | (a_.i32 & ~m); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] < INT32_C(0)) ? -a_.i32[i] : a_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_abs(a) simde_wasm_i32x4_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_abs_epi64(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i64 = vabsq_s64(a_.neon_i64); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i64 = vec_abs(a_.altivec_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i64) z = { 0, }; + __typeof__(r_.i64) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i64), a_.i64 < z); + r_.i64 = (-a_.i64 & m) | (a_.i64 & ~m); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = (a_.i64[i] < INT64_C(0)) ? -a_.i64[i] : a_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_abs(a) simde_wasm_i64x2_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_andnot_si128(_mm_set1_epi32(HEDLEY_STATIC_CAST(int32_t, UINT32_C(1) << 31)), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vabsq_f32(a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = vec_abs(a_.altivec_f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_signbit(a_.f32[i]) ? -a_.f32[i] : a_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_abs(a) simde_wasm_f32x4_abs((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_abs (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_abs(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_andnot_si128(_mm_set1_epi64x(HEDLEY_STATIC_CAST(int64_t, UINT64_C(1) << 63)), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vabsq_f64(a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_abs(a_.altivec_f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_signbit(a_.f64[i]) ? -a_.f64[i] : a_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_abs(a) simde_wasm_f64x2_abs((a)) +#endif + +/* neg */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi8(_mm_setzero_si128(), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vnegq_s8(a_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(8,1,0)) + r_.altivec_i8 = vec_neg(a_.altivec_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = -a_.i8; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = -a_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_neg(a) simde_wasm_i8x16_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi16(_mm_setzero_si128(), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vnegq_s16(a_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i16 = vec_neg(a_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = -a_.i16; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = -a_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_neg(a) simde_wasm_i16x8_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi32(_mm_setzero_si128(), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vnegq_s32(a_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i32 = vec_neg(a_.altivec_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = -a_.i32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = -a_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_neg(a) simde_wasm_i32x4_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi64(_mm_setzero_si128(), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i64 = vnegq_s64(a_.neon_i64); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i64 = vec_neg(a_.altivec_i64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = -a_.i64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = -a_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_neg(a) simde_wasm_i64x2_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_xor_si128(_mm_set1_epi32(HEDLEY_STATIC_CAST(int32_t, UINT32_C(1) << 31)), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vnegq_f32(a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_f32 = vec_neg(a_.altivec_f32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = -a_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = -a_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_neg(a) simde_wasm_f32x4_neg((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_neg (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_neg(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_xor_si128(_mm_set1_epi64x(HEDLEY_STATIC_CAST(int64_t, UINT64_C(1) << 63)), a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vnegq_f64(a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_f64 = vec_neg(a_.altivec_f64); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = -a_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = -a_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_neg(a) simde_wasm_f64x2_neg((a)) +#endif + +/* any_true */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_v128_any_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_any_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + simde_bool r = 0; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r = !_mm_test_all_zeros(a_.sse_m128i, _mm_set1_epi32(~INT32_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r = _mm_movemask_epi8(_mm_cmpeq_epi8(a_.sse_m128i, _mm_setzero_si128())) != 0xffff; + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r = !!vmaxvq_u32(a_.neon_u32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + uint32x2_t tmp = vpmax_u32(vget_low_u32(a_.u32), vget_high_u32(a_.u32)); + r = vget_lane_u32(tmp, 0); + r |= vget_lane_u32(tmp, 1); + r = !!r; + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r = HEDLEY_STATIC_CAST(simde_bool, vec_any_ne(a_.altivec_i32, vec_splats(0))); + #else + int_fast32_t ri = 0; + SIMDE_VECTORIZE_REDUCTION(|:ri) + for (size_t i = 0 ; i < (sizeof(a_.i32f) / sizeof(a_.i32f[0])) ; i++) { + ri |= (a_.i32f[i]); + } + r = !!ri; + #endif + + return r; + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_any_true(a) simde_wasm_v128_any_true((a)) +#endif + +/* all_true */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_i8x16_all_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_all_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_test_all_zeros(_mm_cmpeq_epi8(a_.sse_m128i, _mm_set1_epi8(INT8_C(0))), _mm_set1_epi8(~INT8_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_movemask_epi8(_mm_cmpeq_epi8(a_.sse_m128i, _mm_setzero_si128())) == 0; + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return !vmaxvq_u8(vceqzq_u8(a_.neon_u8)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + uint8x16_t zeroes = vdupq_n_u8(0); + uint8x16_t false_set = vceqq_u8(a_.neon_u8, vdupq_n_u8(0)); + uint32x4_t d_all_true = vceqq_u32(vreinterpretq_u32_u8(false_set), vreinterpretq_u32_u8(zeroes)); + uint32x2_t q_all_true = vpmin_u32(vget_low_u32(d_all_true), vget_high_u32(d_all_true)); + + return !!( + vget_lane_u32(q_all_true, 0) & + vget_lane_u32(q_all_true, 1)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + return HEDLEY_STATIC_CAST(simde_bool, vec_all_ne(a_.altivec_i8, vec_splats(HEDLEY_STATIC_CAST(signed char, 0)))); + #else + int8_t r = !INT8_C(0); + + SIMDE_VECTORIZE_REDUCTION(&:r) + for (size_t i = 0 ; i < (sizeof(a_.i8) / sizeof(a_.i8[0])) ; i++) { + r &= !!(a_.i8[i]); + } + + return r; + #endif + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_all_true(a) simde_wasm_i8x16_all_true((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_i16x8_all_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_all_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_test_all_zeros(_mm_cmpeq_epi16(a_.sse_m128i, _mm_setzero_si128()), _mm_set1_epi16(~INT16_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_movemask_epi8(_mm_cmpeq_epi16(a_.sse_m128i, _mm_setzero_si128())) == 0; + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return !vmaxvq_u16(vceqzq_u16(a_.neon_u16)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + uint16x8_t zeroes = vdupq_n_u16(0); + uint16x8_t false_set = vceqq_u16(a_.neon_u16, vdupq_n_u16(0)); + uint32x4_t d_all_true = vceqq_u32(vreinterpretq_u32_u16(false_set), vreinterpretq_u32_u16(zeroes)); + uint32x2_t q_all_true = vpmin_u32(vget_low_u32(d_all_true), vget_high_u32(d_all_true)); + + return !!( + vget_lane_u32(q_all_true, 0) & + vget_lane_u32(q_all_true, 1)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + return HEDLEY_STATIC_CAST(simde_bool, vec_all_ne(a_.altivec_i16, vec_splats(HEDLEY_STATIC_CAST(signed short, 0)))); + #else + int16_t r = !INT16_C(0); + + SIMDE_VECTORIZE_REDUCTION(&:r) + for (size_t i = 0 ; i < (sizeof(a_.i16) / sizeof(a_.i16[0])) ; i++) { + r &= !!(a_.i16[i]); + } + + return r; + #endif + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_all_true(a) simde_wasm_i16x8_all_true((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_i32x4_all_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_all_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_test_all_zeros(_mm_cmpeq_epi32(a_.sse_m128i, _mm_setzero_si128()), _mm_set1_epi32(~INT32_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_movemask_ps(_mm_castsi128_ps(_mm_cmpeq_epi32(a_.sse_m128i, _mm_setzero_si128()))) == 0; + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + return !vmaxvq_u32(vceqzq_u32(a_.neon_u32)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + uint32x4_t d_all_true = vmvnq_u32(vceqq_u32(a_.neon_u32, vdupq_n_u32(0))); + uint32x2_t q_all_true = vpmin_u32(vget_low_u32(d_all_true), vget_high_u32(d_all_true)); + + return !!( + vget_lane_u32(q_all_true, 0) & + vget_lane_u32(q_all_true, 1)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + return HEDLEY_STATIC_CAST(simde_bool, vec_all_ne(a_.altivec_i32, vec_splats(HEDLEY_STATIC_CAST(signed int, 0)))); + #else + int32_t r = !INT32_C(0); + + SIMDE_VECTORIZE_REDUCTION(&:r) + for (size_t i = 0 ; i < (sizeof(a_.i32) / sizeof(a_.i32[0])) ; i++) { + r &= !!(a_.i32[i]); + } + + return r; + #endif + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_all_true(a) simde_wasm_i32x4_all_true((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_bool +simde_wasm_i64x2_all_true (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) && defined(__wasm_unimplemented_simd128__) + return wasm_i64x2_all_true(a); + #else + simde_v128_private a_ = simde_v128_to_private(a); + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_test_all_zeros(_mm_cmpeq_epi64(a_.sse_m128i, _mm_setzero_si128()), _mm_set1_epi32(~INT32_C(0))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + return _mm_movemask_pd(_mm_cmpeq_pd(a_.sse_m128d, _mm_setzero_pd())) == 0; + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + return HEDLEY_STATIC_CAST(simde_bool, vec_all_ne(a_.altivec_i64, HEDLEY_REINTERPRET_CAST(__typeof__(a_.altivec_i64), vec_splats(0)))); + #else + int64_t r = !INT32_C(0); + + SIMDE_VECTORIZE_REDUCTION(&:r) + for (size_t i = 0 ; i < (sizeof(a_.i64) / sizeof(a_.i64[0])) ; i++) { + r &= !!(a_.i64[i]); + } + + return r; + #endif + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) || (defined(SIMDE_ENABLE_NATIVE_ALIASES) && !defined(__wasm_unimplemented_simd128__)) + #define wasm_i64x2_all_true(a) simde_wasm_i64x2_all_true((a)) +#endif + +/* shl */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_shl (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_shl(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vshlq_s8(a_.neon_i8, vdupq_n_s8(HEDLEY_STATIC_CAST(int8_t, count & 7))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_sl(a_.altivec_i8, vec_splats(HEDLEY_STATIC_CAST(unsigned char, count & 7))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i8 = a_.i8 << (count & 7); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = HEDLEY_STATIC_CAST(int8_t, a_.i8[i] << (count & 7)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_shl(a, count) simde_wasm_i8x16_shl((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_shl (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_shl(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_sll_epi16(a_.sse_m128i, _mm_cvtsi32_si128(count & 15)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vshlq_s16(a_.neon_i16, vdupq_n_s16(HEDLEY_STATIC_CAST(int16_t, count & 15))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_sl(a_.altivec_i16, vec_splats(HEDLEY_STATIC_CAST(unsigned short, count & 15))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i16 = a_.i16 << (count & 15); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i16[i] << (count & 15)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_shl(a, count) simde_wasm_i16x8_shl((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_shl (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_shl(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_sll_epi32(a_.sse_m128i, _mm_cvtsi32_si128(count & 31)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vshlq_s32(a_.neon_i32, vdupq_n_s32(HEDLEY_STATIC_CAST(int32_t, count & 31))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_sl(a_.altivec_i32, vec_splats(HEDLEY_STATIC_CAST(unsigned int, count & 31))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i32 = a_.i32 << (count & 31); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i32[i] << (count & 31)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_shl(a, count) simde_wasm_i32x4_shl((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_shl (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + #if defined(SIMDE_BUG_CLANG_60655) + count = count & 63; + #endif + return wasm_i64x2_shl(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_sll_epi64(a_.sse_m128i, _mm_cvtsi32_si128(count & 63)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vshlq_s64(a_.neon_i64, vdupq_n_s64(HEDLEY_STATIC_CAST(int64_t, count & 63))); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i64 = vec_sl(a_.altivec_i64, vec_splats(HEDLEY_STATIC_CAST(unsigned long long, count & 63))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i64 = a_.i64 << (count & 63); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i64[i] << (count & 63)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_shl(a, count) simde_wasm_i64x2_shl((a), (count)) +#endif + +/* shr */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vshlq_s8(a_.neon_i8, vdupq_n_s8(-HEDLEY_STATIC_CAST(int8_t, count & 7))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_sra(a_.altivec_i8, vec_splats(HEDLEY_STATIC_CAST(unsigned char, count & 7))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i8 = a_.i8 >> (count & 7); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = HEDLEY_STATIC_CAST(int8_t, a_.i8[i] >> (count & 7)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_shr(a, count) simde_wasm_i8x16_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_sra_epi16(a_.sse_m128i, _mm_cvtsi32_si128(count & 15)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vshlq_s16(a_.neon_i16, vdupq_n_s16(-HEDLEY_STATIC_CAST(int16_t, count & 15))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_sra(a_.altivec_i16, vec_splats(HEDLEY_STATIC_CAST(unsigned short, count & 15))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i16 = a_.i16 >> (count & 15); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i16[i] >> (count & 15)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_shr(a, count) simde_wasm_i16x8_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_sra_epi32(a_.sse_m128i, _mm_cvtsi32_si128(count & 31)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vshlq_s32(a_.neon_i32, vdupq_n_s32(-HEDLEY_STATIC_CAST(int32_t, count & 31))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_sra(a_.altivec_i32, vec_splats(HEDLEY_STATIC_CAST(unsigned int, count & 31))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i32 = a_.i32 >> (count & 31); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i32[i] >> (count & 31)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_shr(a, count) simde_wasm_i32x4_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + #if defined(SIMDE_BUG_CLANG_60655) + count = count & 63; + #endif + return wasm_i64x2_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) + return _mm_sra_epi64(a_.sse_m128i, _mm_cvtsi32_si128(count & 63)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vshlq_s64(a_.neon_i64, vdupq_n_s64(-HEDLEY_STATIC_CAST(int64_t, count & 63))); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i64 = vec_sra(a_.altivec_i64, vec_splats(HEDLEY_STATIC_CAST(unsigned long long, count & 63))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.i64 = a_.i64 >> (count & 63); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i64[i] >> (count & 63)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_shr(a, count) simde_wasm_i64x2_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vshlq_u8(a_.neon_u8, vdupq_n_s8(-HEDLEY_STATIC_CAST(int8_t, count & 7))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_sr(a_.altivec_u8, vec_splats(HEDLEY_STATIC_CAST(unsigned char, count & 7))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.u8 = a_.u8 >> (count & 7); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = HEDLEY_STATIC_CAST(uint8_t, a_.u8[i] >> (count & 7)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_shr(a, count) simde_wasm_u8x16_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + return _mm_srl_epi16(a_.sse_m128i, _mm_cvtsi32_si128(count & 15)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vshlq_u16(a_.neon_u16, vdupq_n_s16(-HEDLEY_STATIC_CAST(int16_t, count & 15))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_sr(a_.altivec_u16, vec_splats(HEDLEY_STATIC_CAST(unsigned short, count & 15))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.u16 = a_.u16 >> (count & 15); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u16[i] >> (count & 15)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_shr(a, count) simde_wasm_u16x8_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_srl_epi32(a_.sse_m128i, _mm_cvtsi32_si128(count & 31)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vshlq_u32(a_.neon_u32, vdupq_n_s32(-HEDLEY_STATIC_CAST(int32_t, count & 31))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u32 = vec_sr(a_.altivec_u32, vec_splats(HEDLEY_STATIC_CAST(unsigned int, count & 31))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.u32 = a_.u32 >> (count & 31); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u32[i] >> (count & 31)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_shr(a, count) simde_wasm_u32x4_shr((a), (count)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_shr (simde_v128_t a, uint32_t count) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + #if defined(SIMDE_BUG_CLANG_60655) + count = count & 63; + #endif + return wasm_u64x2_shr(a, count); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + return _mm_srl_epi64(a_.sse_m128i, _mm_cvtsi32_si128(count & 63)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vshlq_u64(a_.neon_u64, vdupq_n_s64(-HEDLEY_STATIC_CAST(int64_t, count & 63))); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_u64 = vec_sr(a_.altivec_u64, vec_splats(HEDLEY_STATIC_CAST(unsigned long long, count & 63))); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) && defined(SIMDE_VECTOR_SCALAR) + r_.u64 = a_.u64 >> (count & 63); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(uint64_t, a_.u64[i] >> (count & 63)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_shr(a, count) simde_wasm_u64x2_shr((a), (count)) +#endif + +/* add */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_add_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = a_.i8 + b_.i8; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = a_.i8[i] + b_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_add(a, b) simde_wasm_i8x16_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_add_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = a_.i16 + b_.i16; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = a_.i16[i] + b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_add(a, b) simde_wasm_i16x8_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_add_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = a_.i32 + b_.i32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = a_.i32[i] + b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_add(a, b) simde_wasm_i32x4_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_add_epi64(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = a_.i64 + b_.i64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = a_.i64[i] + b_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_add(a, b) simde_wasm_i64x2_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_add_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = a_.f32 + b_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a_.f32[i] + b_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_add(a, b) simde_wasm_f32x4_add((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_add (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_add(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_add_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = a_.f64 + b_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a_.f64[i] + b_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_add(a, b) simde_wasm_f64x2_add((a), (b)) +#endif + +/* sub */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i8 = a_.i8 - b_.i8; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = a_.i8[i] - b_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_sub(a, b) simde_wasm_i8x16_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = a_.i16 - b_.i16; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = a_.i16[i] - b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_sub(a, b) simde_wasm_i16x8_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = a_.i32 - b_.i32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = a_.i32[i] - b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_sub(a, b) simde_wasm_i32x4_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_sub_epi64(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = a_.i64 - b_.i64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = a_.i64[i] - b_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_sub(a, b) simde_wasm_i64x2_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_sub_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = a_.f32 - b_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a_.f32[i] - b_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_sub(a, b) simde_wasm_f32x4_sub((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_sub (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_sub(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_sub_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = a_.f64 - b_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a_.f64[i] - b_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_sub(a, b) simde_wasm_f64x2_sub((a), (b)) +#endif + +/* mul */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmulq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i16 = a_.i16 * b_.i16; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = a_.i16[i] * b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_mul(a, b) simde_wasm_i16x8_mul((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_mullo_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i32 = a_.i32 * b_.i32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = a_.i32[i] * b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_mul(a, b) simde_wasm_i32x4_mul((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_AVX512VL_NATIVE) && defined(SIMDE_X86_AVX512DQ_NATIVE) + r_.sse_m128i = _mm_mullo_epi64(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.i64 = a_.i64 * b_.i64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = a_.i64[i] * b_.i64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_mul(a, b) simde_wasm_i64x2_mul((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_mul_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = a_.f32 * b_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a_.f32[i] * b_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_mul(a, b) simde_wasm_f32x4_mul((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_mul (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_mul(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_mul_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = a_.f64 * b_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a_.f64[i] * b_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_mul(a, b) simde_wasm_f64x2_mul((a), (b)) +#endif + +/* q15mulr_sat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_q15mulr_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_q15mulr_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + /* https://github.com/WebAssembly/simd/pull/365 */ + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vqrdmulhq_s16(a_.neon_i16, b_.neon_i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + int32_t tmp = HEDLEY_STATIC_CAST(int32_t, a_.i16[i]) * HEDLEY_STATIC_CAST(int32_t, b_.i16[i]); + tmp += UINT32_C(0x4000); + tmp >>= 15; + r_.i16[i] = (tmp < INT16_MIN) ? INT16_MIN : ((tmp > INT16_MAX) ? (INT16_MAX) : HEDLEY_STATIC_CAST(int16_t, tmp)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_q15mulr_sat(a, b) simde_wasm_i16x8_q15mulr_sat((a), (b)) +#endif + +/* min */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_min_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i m = _mm_cmplt_epi8(a_.sse_m128i, b_.sse_m128i); + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128(m, a_.sse_m128i), + _mm_andnot_si128(m, b_.sse_m128i) + ); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vminq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_min(a_.altivec_i8, b_.altivec_i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] < b_.i8[i]) ? a_.i8[i] : b_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_min(a, b) simde_wasm_i8x16_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_min_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vminq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_min(a_.altivec_i16, b_.altivec_i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] < b_.i16[i]) ? a_.i16[i] : b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_min(a, b) simde_wasm_i16x8_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_min_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i m = _mm_cmplt_epi32(a_.sse_m128i, b_.sse_m128i); + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128(m, a_.sse_m128i), + _mm_andnot_si128(m, b_.sse_m128i) + ); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vminq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_min(a_.altivec_i32, b_.altivec_i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] < b_.i32[i]) ? a_.i32[i] : b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_min(a, b) simde_wasm_i32x4_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_min_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vminq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_min(a_.altivec_u8, b_.altivec_u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] < b_.u8[i]) ? a_.u8[i] : b_.u8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_min(a, b) simde_wasm_u8x16_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_min_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://github.com/simd-everywhere/simde/issues/855#issuecomment-881656284 */ + r_.sse_m128i = _mm_sub_epi16(a, _mm_subs_epu16(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vminq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_min(a_.altivec_u16, b_.altivec_u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] < b_.u16[i]) ? a_.u16[i] : b_.u16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_min(a, b) simde_wasm_u16x8_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_min_epu32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + const __m128i i32_min = _mm_set1_epi32(INT32_MIN); + const __m128i difference = _mm_sub_epi32(a_.sse_m128i, b_.sse_m128i); + __m128i m = + _mm_cmpeq_epi32( + /* _mm_subs_epu32(a_.sse_m128i, b_.sse_m128i) */ + _mm_and_si128( + difference, + _mm_xor_si128( + _mm_cmpgt_epi32( + _mm_xor_si128(difference, i32_min), + _mm_xor_si128(a_.sse_m128i, i32_min) + ), + _mm_set1_epi32(~INT32_C(0)) + ) + ), + _mm_setzero_si128() + ); + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128(m, a_.sse_m128i), + _mm_andnot_si128(m, b_.sse_m128i) + ); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vminq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u32 = vec_min(a_.altivec_u32, b_.altivec_u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] < b_.u32[i]) ? a_.u32[i] : b_.u32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_min(a, b) simde_wasm_u32x4_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(6,0,0)) + // Inspired by https://github.com/v8/v8/blob/c750b6c85bd1ad1d27f7acc1812165f465515144/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc#L202 + simde_v128_private scratch; + scratch.sse_m128 = a_.sse_m128; + scratch.sse_m128 = _mm_min_ps(scratch.sse_m128, b_.sse_m128); + r_.sse_m128 = b_.sse_m128; + r_.sse_m128 = _mm_min_ps(r_.sse_m128, a_.sse_m128); + scratch.sse_m128 = _mm_or_ps(scratch.sse_m128, r_.sse_m128); + r_.sse_m128 = _mm_cmpunord_ps(r_.sse_m128, scratch.sse_m128); + scratch.sse_m128 = _mm_or_ps(scratch.sse_m128, r_.sse_m128); + r_.sse_m128i = _mm_srli_epi32(r_.sse_m128i, 10); + r_.sse_m128 = _mm_andnot_ps(r_.sse_m128, scratch.sse_m128); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = SIMDE_WASM_SIMD128_FMINF(a_.f32[i], b_.f32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_min(a, b) simde_wasm_f32x4_min((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_min (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_min(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(6,0,0)) + // Inspired by https://github.com/v8/v8/blob/c750b6c85bd1ad1d27f7acc1812165f465515144/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc#L263 + simde_v128_private scratch; + scratch.sse_m128d = a_.sse_m128d; + scratch.sse_m128d = _mm_min_pd(scratch.sse_m128d, b_.sse_m128d); + r_.sse_m128d = b_.sse_m128d; + r_.sse_m128d = _mm_min_pd(r_.sse_m128d, a_.sse_m128d); + scratch.sse_m128d = _mm_or_pd(scratch.sse_m128d, r_.sse_m128d); + r_.sse_m128d = _mm_cmpunord_pd(r_.sse_m128d, scratch.sse_m128d); + scratch.sse_m128d = _mm_or_pd(scratch.sse_m128d, r_.sse_m128d); + r_.sse_m128i = _mm_srli_epi64(r_.sse_m128i, 13); + r_.sse_m128d = _mm_andnot_pd(r_.sse_m128d, scratch.sse_m128d); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = SIMDE_WASM_SIMD128_FMIN(a_.f64[i], b_.f64[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_min(a, b) simde_wasm_f64x2_min((a), (b)) +#endif + +/* max */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_max_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i m = _mm_cmpgt_epi8(a_.sse_m128i, b_.sse_m128i); + r_.sse_m128i = _mm_or_si128(_mm_and_si128(m, a_.sse_m128i), _mm_andnot_si128(m, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vmaxq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i8 = vec_max(a_.altivec_i8, b_.altivec_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i8) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), a_.i8 > b_.i8); + r_.i8 = (m & a_.i8) | (~m & b_.i8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (a_.i8[i] > b_.i8[i]) ? a_.i8[i] : b_.i8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_max(a, b) simde_wasm_i8x16_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_max_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmaxq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i16 = vec_max(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i16) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), a_.i16 > b_.i16); + r_.i16 = (m & a_.i16) | (~m & b_.i16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = (a_.i16[i] > b_.i16[i]) ? a_.i16[i] : b_.i16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_max(a, b) simde_wasm_i16x8_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_max_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i m = _mm_cmpgt_epi32(a_.sse_m128i, b_.sse_m128i); + r_.sse_m128i = _mm_or_si128(_mm_and_si128(m, a_.sse_m128i), _mm_andnot_si128(m, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmaxq_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i32 = vec_max(a_.altivec_i32, b_.altivec_i32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.i32) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.i32 > b_.i32); + r_.i32 = (m & a_.i32) | (~m & b_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = (a_.i32[i] > b_.i32[i]) ? a_.i32[i] : b_.i32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_max(a, b) simde_wasm_i32x4_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_max_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vmaxq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u8 = vec_max(a_.altivec_u8, b_.altivec_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.u8) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), a_.u8 > b_.u8); + r_.u8 = (m & a_.u8) | (~m & b_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] > b_.u8[i]) ? a_.u8[i] : b_.u8[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_max(a, b) simde_wasm_u8x16_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_max_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://github.com/simd-everywhere/simde/issues/855#issuecomment-881656284 */ + r_.sse_m128i = _mm_add_epi16(b, _mm_subs_epu16(a_.sse_m128i, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmaxq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u16 = vec_max(a_.altivec_u16, b_.altivec_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.u16) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), a_.u16 > b_.u16); + r_.u16 = (m & a_.u16) | (~m & b_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] > b_.u16[i]) ? a_.u16[i] : b_.u16[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_max(a, b) simde_wasm_u16x8_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_max_epu32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://github.com/simd-everywhere/simde/issues/855#issuecomment-886057227 */ + __m128i m = + _mm_xor_si128( + _mm_cmpgt_epi32(a_.sse_m128i, b_.sse_m128i), + _mm_srai_epi32(_mm_xor_si128(a_.sse_m128i, b_.sse_m128i), 31) + ); + r_.sse_m128i = _mm_or_si128(_mm_and_si128(m, a_.sse_m128i), _mm_andnot_si128(m, b_.sse_m128i)); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmaxq_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_u32 = vec_max(a_.altivec_u32, b_.altivec_u32); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + __typeof__(r_.u32) m = HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.u32 > b_.u32); + r_.u32 = (m & a_.u32) | (~m & b_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.u32[i] = (a_.u32[i] > b_.u32[i]) ? a_.u32[i] : b_.u32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_max(a, b) simde_wasm_u32x4_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(6,0,0)) + // Inspired by https://github.com/v8/v8/blob/c750b6c85bd1ad1d27f7acc1812165f465515144/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc#L231 + simde_v128_private scratch; + scratch.sse_m128 = a_.sse_m128; + scratch.sse_m128 = _mm_max_ps(scratch.sse_m128, b_.sse_m128); + r_.sse_m128 = b_.sse_m128; + r_.sse_m128 = _mm_max_ps(r_.sse_m128, a_.sse_m128); + r_.sse_m128 = _mm_xor_ps(r_.sse_m128, scratch.sse_m128); + scratch.sse_m128 = _mm_or_ps(scratch.sse_m128, r_.sse_m128); + scratch.sse_m128 = _mm_sub_ps(scratch.sse_m128, r_.sse_m128); + r_.sse_m128 = _mm_cmpunord_ps(r_.sse_m128, scratch.sse_m128); + r_.sse_m128i = _mm_srli_epi32(r_.sse_m128i, 10); + r_.sse_m128 = _mm_andnot_ps(r_.sse_m128, scratch.sse_m128); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = SIMDE_WASM_SIMD128_FMAXF(a_.f32[i], b_.f32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_max(a, b) simde_wasm_f32x4_max((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_max (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_max(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) && (!defined(HEDLEY_GCC_VERSION) || HEDLEY_GCC_VERSION_CHECK(6,0,0)) + // Inspired by https://github.com/v8/v8/blob/c750b6c85bd1ad1d27f7acc1812165f465515144/src/codegen/shared-ia32-x64/macro-assembler-shared-ia32-x64.cc#L301 + simde_v128_private scratch; + scratch.sse_m128d = a_.sse_m128d; + scratch.sse_m128d = _mm_max_pd(scratch.sse_m128d, b_.sse_m128d); + r_.sse_m128d = b_.sse_m128d; + r_.sse_m128d = _mm_max_pd(r_.sse_m128d, a_.sse_m128d); + r_.sse_m128d = _mm_xor_pd(r_.sse_m128d, scratch.sse_m128d); + scratch.sse_m128d = _mm_or_pd(scratch.sse_m128d, r_.sse_m128d); + scratch.sse_m128d = _mm_sub_pd(scratch.sse_m128d, r_.sse_m128d); + r_.sse_m128d = _mm_cmpunord_pd(r_.sse_m128d, scratch.sse_m128d); + r_.sse_m128i = _mm_srli_epi64(r_.sse_m128i, 13); + r_.sse_m128d = _mm_andnot_pd(r_.sse_m128d, scratch.sse_m128d); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = SIMDE_WASM_SIMD128_FMAX(a_.f64[i], b_.f64[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_max(a, b) simde_wasm_f64x2_max((a), (b)) +#endif + +/* add_sat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_add_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_add_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_adds_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vqaddq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_adds(a_.altivec_i8, b_.altivec_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + __typeof__(a_.u8) r1, r2, m; + r1 = a_.u8 + b_.u8; + r2 = (a_.u8 >> 7) + INT8_MAX; + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), (r2 ^ b_.u8) | ~(b_.u8 ^ r1)) < 0); + r_.i8 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), (r1 & m) | (r2 & ~m)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = simde_math_adds_i8(a_.i8[i], b_.i8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_add_sat(a, b) simde_wasm_i8x16_add_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_add_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_add_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_adds_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vqaddq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_adds(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + __typeof__(a_.u16) r1, r2, m; + r1 = a_.u16 + b_.u16; + r2 = (a_.u16 >> 15) + INT16_MAX; + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), (r2 ^ b_.u16) | ~(b_.u16 ^ r1)) < 0); + r_.i16 = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), (r1 & m) | (r2 & ~m)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = simde_math_adds_i16(a_.i16[i], b_.i16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_add_sat(a, b) simde_wasm_i16x8_add_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_add_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_add_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_adds_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vqaddq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_adds(a_.altivec_u8, b_.altivec_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.u8 = a_.u8 + b_.u8; + r_.u8 |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), r_.u8 < a_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = simde_math_adds_u8(a_.u8[i], b_.u8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_add_sat(a, b) simde_wasm_u8x16_add_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_add_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_add_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_adds_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vqaddq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_adds(a_.altivec_u16, b_.altivec_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + r_.u16 = a_.u16 + b_.u16; + r_.u16 |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), r_.u16 < a_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = simde_math_adds_u16(a_.u16[i], b_.u16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_add_sat(a, b) simde_wasm_u16x8_add_sat((a), (b)) +#endif + +/* avgr */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_avgr (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_avgr(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_avg_epu8(a_.sse_m128i, b_.sse_m128i); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = (a_.u8[i] + b_.u8[i] + 1) >> 1; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_avgr(a, b) simde_wasm_u8x16_avgr((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_avgr (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_avgr(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_avg_epu16(a_.sse_m128i, b_.sse_m128i); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = (a_.u16[i] + b_.u16[i] + 1) >> 1; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_avgr(a, b) simde_wasm_u16x8_avgr((a), (b)) +#endif + +/* sub_sat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_sub_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_sub_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_subs_epi8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vqsubq_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_subs(a_.altivec_i8, b_.altivec_i8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + const __typeof__(r_.i8) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i8), (b_.i8 > a_.i8) ^ INT8_MAX); + const __typeof__(r_.i8) diff = a_.i8 - b_.i8; + const __typeof__(r_.i8) saturate = diff_sat ^ diff; + const __typeof__(r_.i8) m = saturate >> 7; + r_.i8 = (diff_sat & m) | (diff & ~m); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = simde_math_subs_i8(a_.i8[i], b_.i8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_sub_sat(a, b) simde_wasm_i8x16_sub_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_sub_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_sub_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_subs_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vqsubq_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_subs(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + const __typeof__(r_.i16) diff_sat = HEDLEY_REINTERPRET_CAST(__typeof__(r_.i16), (b_.i16 > a_.i16) ^ INT16_MAX); + const __typeof__(r_.i16) diff = a_.i16 - b_.i16; + const __typeof__(r_.i16) saturate = diff_sat ^ diff; + const __typeof__(r_.i16) m = saturate >> 15; + r_.i16 = (diff_sat & m) | (diff & ~m); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = simde_math_subs_i16(a_.i16[i], b_.i16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_sub_sat(a, b) simde_wasm_i16x8_sub_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_sub_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_sub_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_subs_epu8(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = vqsubq_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_subs(a_.altivec_u8, b_.altivec_u8); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.u8 = a_.u8 - b_.u8; + r_.u8 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u8), r_.u8 <= a_.u8); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + r_.u8[i] = simde_math_subs_u8(a_.u8[i], b_.u8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_sub_sat(a, b) simde_wasm_u8x16_sub_sat((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_sub_sat (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_sub_sat(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_subs_epu16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vqsubq_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_subs(a_.altivec_u16, b_.altivec_u16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.u16 = a_.u16 - b_.u16; + r_.u16 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u16), r_.u16 <= a_.u16); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = simde_math_subs_u16(a_.u16[i], b_.u16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_sub_sat(a, b) simde_wasm_u16x8_sub_sat((a), (b)) +#endif + +/* pmin */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_pmin (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_pmin(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_min_ps(b_.sse_m128, a_.sse_m128); + #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vminq_f32(a_.neon_f32, b_.neon_f32); + #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = vec_min(a_.altivec_f32, b_.altivec_f32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = + vbslq_f32( + vcltq_f32(b_.neon_f32, a_.neon_f32), + b_.neon_f32, + a_.neon_f32 + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = + vec_sel( + a_.altivec_f32, + b_.altivec_f32, + vec_cmpgt(a_.altivec_f32, b_.altivec_f32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = (b_.f32[i] < a_.f32[i]) ? b_.f32[i] : a_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_pmin(a, b) simde_wasm_f32x4_pmin((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_pmin (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_pmin(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_min_pd(b_.sse_m128d, a_.sse_m128d); + #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f32 = vminq_f64(a_.neon_f64, b_.neon_f64); + #elif defined(SIMDE_FAST_NANS) && defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_min(a_.altivec_f64, b_.altivec_f64); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = + vbslq_f64( + vcltq_f64(b_.neon_f64, a_.neon_f64), + b_.neon_f64, + a_.neon_f64 + ); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = + vec_sel( + a_.altivec_f64, + b_.altivec_f64, + vec_cmpgt(a_.altivec_f64, b_.altivec_f64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = (b_.f64[i] < a_.f64[i]) ? b_.f64[i] : a_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_pmin(a, b) simde_wasm_f64x2_pmin((a), (b)) +#endif + +/* pmax */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_pmax (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_pmax(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE_NATIVE) + r_.sse_m128 = _mm_max_ps(b_.sse_m128, a_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_f32 = vbslq_f32(vcltq_f32(a_.neon_f32, b_.neon_f32), b_.neon_f32, a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE) + r_.altivec_f32 = vec_sel(a_.altivec_f32, b_.altivec_f32, vec_cmplt(a_.altivec_f32, b_.altivec_f32)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + int32_t SIMDE_VECTOR(16) m = HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f32 < b_.f32); + r_.f32 = + HEDLEY_REINTERPRET_CAST( + __typeof__(r_.f32), + ( + ( m & HEDLEY_REINTERPRET_CAST(__typeof__(m), b_.f32)) | + (~m & HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f32)) + ) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = (a_.f32[i] < b_.f32[i]) ? b_.f32[i] : a_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_pmax(a, b) simde_wasm_f32x4_pmax((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_pmax (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_pmax(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_max_pd(b_.sse_m128d, a_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vbslq_f64(vcltq_f64(a_.neon_f64, b_.neon_f64), b_.neon_f64, a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_f64 = vec_sel(a_.altivec_f64, b_.altivec_f64, vec_cmplt(a_.altivec_f64, b_.altivec_f64)); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) + int64_t SIMDE_VECTOR(16) m = HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f64 < b_.f64); + r_.f64 = + HEDLEY_REINTERPRET_CAST( + __typeof__(r_.f64), + ( + ( m & HEDLEY_REINTERPRET_CAST(__typeof__(m), b_.f64)) | + (~m & HEDLEY_REINTERPRET_CAST(__typeof__(m), a_.f64)) + ) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = (a_.f64[i] < b_.f64[i]) ? b_.f64[i] : a_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_pmax(a, b) simde_wasm_f64x2_pmax((a), (b)) +#endif + +/* div */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_div (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_div(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_div_ps(a_.sse_m128, b_.sse_m128); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f32 = a_.f32 / b_.f32; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = a_.f32[i] / b_.f32[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_div(a, b) simde_wasm_f32x4_div((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_div (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_div(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_div_pd(a_.sse_m128d, b_.sse_m128d); + #elif defined(SIMDE_VECTOR_SUBSCRIPT) + r_.f64 = a_.f64 / b_.f64; + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = a_.f64[i] / b_.f64[i]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_div(a, b) simde_wasm_f64x2_div((a), (b)) +#endif + +/* shuffle */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_shuffle ( + simde_v128_t a, simde_v128_t b, + const int c0, const int c1, const int c2, const int c3, const int c4, const int c5, const int c6, const int c7, + const int c8, const int c9, const int c10, const int c11, const int c12, const int c13, const int c14, const int c15) { + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + r_.i8[ 0] = ( c0 < 16) ? a_.i8[ c0] : b_.i8[ c0 & 15]; + r_.i8[ 1] = ( c1 < 16) ? a_.i8[ c1] : b_.i8[ c1 & 15]; + r_.i8[ 2] = ( c2 < 16) ? a_.i8[ c2] : b_.i8[ c2 & 15]; + r_.i8[ 3] = ( c3 < 16) ? a_.i8[ c3] : b_.i8[ c3 & 15]; + r_.i8[ 4] = ( c4 < 16) ? a_.i8[ c4] : b_.i8[ c4 & 15]; + r_.i8[ 5] = ( c5 < 16) ? a_.i8[ c5] : b_.i8[ c5 & 15]; + r_.i8[ 6] = ( c6 < 16) ? a_.i8[ c6] : b_.i8[ c6 & 15]; + r_.i8[ 7] = ( c7 < 16) ? a_.i8[ c7] : b_.i8[ c7 & 15]; + r_.i8[ 8] = ( c8 < 16) ? a_.i8[ c8] : b_.i8[ c8 & 15]; + r_.i8[ 9] = ( c9 < 16) ? a_.i8[ c9] : b_.i8[ c9 & 15]; + r_.i8[10] = (c10 < 16) ? a_.i8[c10] : b_.i8[c10 & 15]; + r_.i8[11] = (c11 < 16) ? a_.i8[c11] : b_.i8[c11 & 15]; + r_.i8[12] = (c12 < 16) ? a_.i8[c12] : b_.i8[c12 & 15]; + r_.i8[13] = (c13 < 16) ? a_.i8[c13] : b_.i8[c13 & 15]; + r_.i8[14] = (c14 < 16) ? a_.i8[c14] : b_.i8[c14 & 15]; + r_.i8[15] = (c15 < 16) ? a_.i8[c15] : b_.i8[c15 & 15]; + + return simde_v128_from_private(r_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i8x16_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + wasm_i8x16_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) +#elif defined(SIMDE_SHUFFLE_VECTOR_) + #define \ + simde_wasm_i8x16_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + (__extension__ ({ \ + HEDLEY_REINTERPRET_CAST(simde_v128_t, SIMDE_SHUFFLE_VECTOR_(8, 16, \ + HEDLEY_REINTERPRET_CAST(int8_t SIMDE_VECTOR(16), a), \ + HEDLEY_REINTERPRET_CAST(int8_t SIMDE_VECTOR(16), b), \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15)); \ + })) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i8x16_shuffle(a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7, \ + c8, c9, c10, c11, c12, c13, c14, c15) \ + simde_wasm_i8x16_shuffle((a), (b), \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7), \ + (c8), (c9), (c10), (c11), (c12), (c13), (c14), (c15)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_shuffle ( + simde_v128_t a, simde_v128_t b, + const int c0, const int c1, const int c2, const int c3, const int c4, const int c5, const int c6, const int c7) { + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + r_.i16[ 0] = (c0 < 8) ? a_.i16[ c0] : b_.i16[ c0 & 7]; + r_.i16[ 1] = (c1 < 8) ? a_.i16[ c1] : b_.i16[ c1 & 7]; + r_.i16[ 2] = (c2 < 8) ? a_.i16[ c2] : b_.i16[ c2 & 7]; + r_.i16[ 3] = (c3 < 8) ? a_.i16[ c3] : b_.i16[ c3 & 7]; + r_.i16[ 4] = (c4 < 8) ? a_.i16[ c4] : b_.i16[ c4 & 7]; + r_.i16[ 5] = (c5 < 8) ? a_.i16[ c5] : b_.i16[ c5 & 7]; + r_.i16[ 6] = (c6 < 8) ? a_.i16[ c6] : b_.i16[ c6 & 7]; + r_.i16[ 7] = (c7 < 8) ? a_.i16[ c7] : b_.i16[ c7 & 7]; + + return simde_v128_from_private(r_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i16x8_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + wasm_i16x8_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7) +#elif defined(SIMDE_SHUFFLE_VECTOR_) + #define \ + simde_wasm_i16x8_shuffle( \ + a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + (__extension__ ({ \ + HEDLEY_REINTERPRET_CAST(simde_v128_t, SIMDE_SHUFFLE_VECTOR_(16, 16, \ + HEDLEY_REINTERPRET_CAST(int16_t SIMDE_VECTOR(16), a), \ + HEDLEY_REINTERPRET_CAST(int16_t SIMDE_VECTOR(16), b), \ + c0, c1, c2, c3, c4, c5, c6, c7)); \ + })) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i16x8_shuffle(a, b, \ + c0, c1, c2, c3, c4, c5, c6, c7) \ + simde_wasm_i16x8_shuffle((a), (b), \ + (c0), (c1), (c2), (c3), (c4), (c5), (c6), (c7)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_shuffle ( + simde_v128_t a, simde_v128_t b, + const int c0, const int c1, const int c2, const int c3) { + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + r_.i32[ 0] = (c0 < 4) ? a_.i32[ c0] : b_.i32[ c0 & 3]; + r_.i32[ 1] = (c1 < 4) ? a_.i32[ c1] : b_.i32[ c1 & 3]; + r_.i32[ 2] = (c2 < 4) ? a_.i32[ c2] : b_.i32[ c2 & 3]; + r_.i32[ 3] = (c3 < 4) ? a_.i32[ c3] : b_.i32[ c3 & 3]; + + return simde_v128_from_private(r_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i32x4_shuffle( \ + a, b, \ + c0, c1, c2, c3) \ + wasm_i32x4_shuffle( \ + a, b, \ + c0, c1, c2, c3) +#elif defined(SIMDE_SHUFFLE_VECTOR_) + #define \ + simde_wasm_i32x4_shuffle( \ + a, b, \ + c0, c1, c2, c3) \ + (__extension__ ({ \ + HEDLEY_REINTERPRET_CAST(simde_v128_t, SIMDE_SHUFFLE_VECTOR_(32, 16, \ + HEDLEY_REINTERPRET_CAST(int32_t SIMDE_VECTOR(16), a), \ + HEDLEY_REINTERPRET_CAST(int32_t SIMDE_VECTOR(16), b), \ + c0, c1, c2, c3)); \ + })) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i32x4_shuffle(a, b, \ + c0, c1, c2, c3) \ + simde_wasm_i32x4_shuffle((a), (b), \ + (c0), (c1), (c2), (c3)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_shuffle ( + simde_v128_t a, simde_v128_t b, + const int c0, const int c1) { + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + r_.i64[ 0] = (c0 < 2) ? a_.i64[ c0] : b_.i64[ c0 & 1]; + r_.i64[ 1] = (c1 < 2) ? a_.i64[ c1] : b_.i64[ c1 & 1]; + + return simde_v128_from_private(r_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define \ + simde_wasm_i64x2_shuffle( \ + a, b, \ + c0, c1) \ + wasm_i64x2_shuffle( \ + a, b, \ + c0, c1) +#elif defined(SIMDE_SHUFFLE_VECTOR_) + #define \ + simde_wasm_i64x2_shuffle( \ + a, b, \ + c0, c1) \ + (__extension__ ({ \ + HEDLEY_REINTERPRET_CAST(simde_v128_t, SIMDE_SHUFFLE_VECTOR_(64, 16, \ + HEDLEY_REINTERPRET_CAST(int64_t SIMDE_VECTOR(16), a), \ + HEDLEY_REINTERPRET_CAST(int64_t SIMDE_VECTOR(16), b), \ + c0, c1)); \ + })) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define \ + wasm_i64x2_shuffle(a, b, \ + c0, c1) \ + simde_wasm_i64x2_shuffle((a), (b), \ + (c0), (c1)) +#endif + +/* swizzle */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_swizzle (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_swizzle(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + int8x8x2_t tmp = { { vget_low_s8(a_.neon_i8), vget_high_s8(a_.neon_i8) } }; + r_.neon_i8 = vcombine_s8( + vtbl2_s8(tmp, vget_low_s8(b_.neon_i8)), + vtbl2_s8(tmp, vget_high_s8(b_.neon_i8)) + ); + #elif defined(SIMDE_X86_SSSE3_NATIVE) + /* https://github.com/WebAssembly/simd/issues/68#issuecomment-470825324 */ + r_.sse_m128i = + _mm_shuffle_epi8( + a_.sse_m128i, + _mm_adds_epu8( + _mm_set1_epi8(0x70), + b_.sse_m128i)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_perm( + a_.altivec_i8, + a_.altivec_i8, + b_.altivec_u8 + ); + r_.altivec_i8 = vec_and(r_.altivec_i8, vec_cmple(b_.altivec_u8, vec_splat_u8(15))); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + r_.i8[i] = (b_.u8[i] > 15) ? INT8_C(0) : a_.i8[b_.u8[i]]; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_swizzle(a, b) simde_wasm_i8x16_swizzle((a), (b)) +#endif + +/* narrow */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_narrow_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_narrow_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i8 = vqmovn_high_s16(vqmovn_s16(a_.neon_i16), b_.neon_i16); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vcombine_s8(vqmovn_s16(a_.neon_i16), vqmovn_s16(b_.neon_i16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_packs(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_packs_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + int16_t SIMDE_VECTOR(32) v = SIMDE_SHUFFLE_VECTOR_(16, 32, a_.i16, b_.i16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); + const int16_t SIMDE_VECTOR(32) min = { INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN, INT8_MIN }; + const int16_t SIMDE_VECTOR(32) max = { INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX, INT8_MAX }; + + int16_t m SIMDE_VECTOR(32); + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), v < min); + v = (v & ~m) | (min & m); + + m = v > max; + v = (v & ~m) | (max & m); + + SIMDE_CONVERT_VECTOR_(r_.i8, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + int16_t v = (i < (sizeof(a_.i16) / sizeof(a_.i16[0]))) ? a_.i16[i] : b_.i16[i & 7]; + r_.i8[i] = (v < INT8_MIN) ? INT8_MIN : ((v > INT8_MAX) ? INT8_MAX : HEDLEY_STATIC_CAST(int8_t, v)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_narrow_i16x8(a, b) simde_wasm_i8x16_narrow_i16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_narrow_i32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_narrow_i32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i16 = vqmovn_high_s32(vqmovn_s32(a_.neon_i32), b_.neon_i32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vcombine_s16(vqmovn_s32(a_.neon_i32), vqmovn_s32(b_.neon_i32)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_packs(a_.altivec_i32, b_.altivec_i32); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_packs_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + int32_t SIMDE_VECTOR(32) v = SIMDE_SHUFFLE_VECTOR_(32, 32, a_.i32, b_.i32, 0, 1, 2, 3, 4, 5, 6, 7); + const int32_t SIMDE_VECTOR(32) min = { INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN, INT16_MIN }; + const int32_t SIMDE_VECTOR(32) max = { INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX, INT16_MAX }; + + int32_t m SIMDE_VECTOR(32); + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), v < min); + v = (v & ~m) | (min & m); + + m = HEDLEY_REINTERPRET_CAST(__typeof__(m), v > max); + v = (v & ~m) | (max & m); + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + int32_t v = (i < (sizeof(a_.i32) / sizeof(a_.i32[0]))) ? a_.i32[i] : b_.i32[i & 3]; + r_.i16[i] = (v < INT16_MIN) ? INT16_MIN : ((v > INT16_MAX) ? INT16_MAX : HEDLEY_STATIC_CAST(int16_t, v)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_narrow_i32x4(a, b) simde_wasm_i16x8_narrow_i32x4((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u8x16_narrow_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u8x16_narrow_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_BUG_CLANG_46840) + r_.neon_u8 = vqmovun_high_s16(vreinterpret_s8_u8(vqmovun_s16(a_.neon_i16)), b_.neon_i16); + #else + r_.neon_u8 = vqmovun_high_s16(vqmovun_s16(a_.neon_i16), b_.neon_i16); + #endif + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u8 = + vcombine_u8( + vqmovun_s16(a_.neon_i16), + vqmovun_s16(b_.neon_i16) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_packus_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u8 = vec_packsu(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + int16_t v SIMDE_VECTOR(32) = SIMDE_SHUFFLE_VECTOR_(16, 32, a_.i16, b_.i16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15); + + v &= ~(v >> 15); + v |= HEDLEY_REINTERPRET_CAST(__typeof__(v), v > UINT8_MAX); + + SIMDE_CONVERT_VECTOR_(r_.i8, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i8) / sizeof(r_.i8[0])) ; i++) { + int16_t v = (i < (sizeof(a_.i16) / sizeof(a_.i16[0]))) ? a_.i16[i] : b_.i16[i & 7]; + r_.u8[i] = (v < 0) ? UINT8_C(0) : ((v > UINT8_MAX) ? UINT8_MAX : HEDLEY_STATIC_CAST(uint8_t, v)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u8x16_narrow_i16x8(a, b) simde_wasm_u8x16_narrow_i16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_narrow_i32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_narrow_i32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + #if defined(SIMDE_BUG_CLANG_46840) + r_.neon_u16 = vqmovun_high_s32(vreinterpret_s16_u16(vqmovun_s32(a_.neon_i32)), b_.neon_i32); + #else + r_.neon_u16 = vqmovun_high_s32(vqmovun_s32(a_.neon_i32), b_.neon_i32); + #endif + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = + vcombine_u16( + vqmovun_s32(a_.neon_i32), + vqmovun_s32(b_.neon_i32) + ); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_packus_epi32(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + const __m128i max = _mm_set1_epi32(UINT16_MAX); + const __m128i tmpa = _mm_andnot_si128(_mm_srai_epi32(a_.sse_m128i, 31), a_.sse_m128i); + const __m128i tmpb = _mm_andnot_si128(_mm_srai_epi32(b_.sse_m128i, 31), b_.sse_m128i); + r_.sse_m128i = + _mm_packs_epi32( + _mm_srai_epi32(_mm_slli_epi32(_mm_or_si128(tmpa, _mm_cmpgt_epi32(tmpa, max)), 16), 16), + _mm_srai_epi32(_mm_slli_epi32(_mm_or_si128(tmpb, _mm_cmpgt_epi32(tmpb, max)), 16), 16) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = vec_packsu(a_.altivec_i32, b_.altivec_i32); + #elif defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + int32_t v SIMDE_VECTOR(32) = SIMDE_SHUFFLE_VECTOR_(32, 32, a_.i32, b_.i32, 0, 1, 2, 3, 4, 5, 6, 7); + + v &= ~(v >> 31); + v |= HEDLEY_REINTERPRET_CAST(__typeof__(v), v > UINT16_MAX); + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + int32_t v = (i < (sizeof(a_.i32) / sizeof(a_.i32[0]))) ? a_.i32[i] : b_.i32[i & 3]; + r_.u16[i] = (v < 0) ? UINT16_C(0) : ((v > UINT16_MAX) ? UINT16_MAX : HEDLEY_STATIC_CAST(uint16_t, v)); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_narrow_i32x4(a, b) simde_wasm_u16x8_narrow_i32x4((a), (b)) +#endif + +/* demote */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_demote_f64x2_zero (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_demote_f64x2_zero(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cvtpd_ps(a_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f32 = vcombine_f32(vcvt_f32_f64(a_.neon_f64), vdup_n_f32(0.0f)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f32 = vec_floate(a_.altivec_f64); + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_f32 = + HEDLEY_REINTERPRET_CAST( + SIMDE_POWER_ALTIVEC_VECTOR(float), + vec_pack( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), r_.altivec_f32), + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), vec_splat_s32(0)) + ) + ); + #else + const SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0x00, 0x01, 0x02, 0x03, /* 0 */ + 0x08, 0x09, 0x0a, 0x0b, /* 2 */ + 0x10, 0x11, 0x12, 0x13, /* 4 */ + 0x18, 0x19, 0x1a, 0x1b /* 6 */ + }; + r_.altivec_f32 = vec_perm(r_.altivec_f32, HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(float), vec_splat_s32(0)), perm); + #endif + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && HEDLEY_HAS_BUILTIN(__builtin_convertvector) + float __attribute__((__vector_size__(8))) z = { 0.0f, 0.0f }; + r_.f32 = __builtin_shufflevector(__builtin_convertvector(a_.f64, __typeof__(z)), z, 0, 1, 2, 3); + #else + r_.f32[0] = HEDLEY_STATIC_CAST(simde_float32, a_.f64[0]); + r_.f32[1] = HEDLEY_STATIC_CAST(simde_float32, a_.f64[1]); + r_.f32[2] = SIMDE_FLOAT32_C(0.0); + r_.f32[3] = SIMDE_FLOAT32_C(0.0); + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_demote_f64x2_zero(a) simde_wasm_f32x4_demote_f64x2_zero((a)) +#endif + +/* extend_low */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extend_low_i8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extend_low_i8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmovl_s8(vget_low_s8(a_.neon_i8)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi8_epi16(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srai_epi16(_mm_unpacklo_epi8(a_.sse_m128i, a_.sse_m128i), 8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = + vec_sra( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(short), vec_mergeh(a_.altivec_i8, a_.altivec_i8)), + vec_splats(HEDLEY_STATIC_CAST(unsigned short, 8) + ) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int8_t v SIMDE_VECTOR(8) = { + a_.i8[0], a_.i8[1], a_.i8[2], a_.i8[3], + a_.i8[4], a_.i8[5], a_.i8[6], a_.i8[7] + }; + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extend_low_i8x16(a) simde_wasm_i16x8_extend_low_i8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extend_low_i16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extend_low_i16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmovl_s16(vget_low_s16(a_.neon_i16)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi16_epi32(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srai_epi32(_mm_unpacklo_epi16(a_.sse_m128i, a_.sse_m128i), 16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_sra(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(int), vec_mergeh(a_.altivec_i16, a_.altivec_i16)), + vec_splats(HEDLEY_STATIC_CAST(unsigned int, 16)) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int16_t v SIMDE_VECTOR(8) = { a_.i16[0], a_.i16[1], a_.i16[2], a_.i16[3] }; + + SIMDE_CONVERT_VECTOR_(r_.i32, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extend_low_i16x8(a) simde_wasm_i32x4_extend_low_i16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_extend_low_i32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_extend_low_i32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vmovl_s32(vget_low_s32(a_.neon_i32)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi32_epi64(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_unpacklo_epi32(a_.sse_m128i, _mm_cmpgt_epi32(_mm_setzero_si128(), a_.sse_m128i)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_i64 = + vec_sra(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), vec_mergeh(a_.altivec_i32, a_.altivec_i32)), + vec_splats(HEDLEY_STATIC_CAST(unsigned long long, 32)) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_mergeh( + a_.altivec_i32, + HEDLEY_REINTERPRET_CAST( + SIMDE_POWER_ALTIVEC_VECTOR(int), + vec_cmpgt(vec_splat_s32(0), a_.altivec_i32) + ) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int32_t v SIMDE_VECTOR(8) = { a_.i32[0], a_.i32[1] }; + + SIMDE_CONVERT_VECTOR_(r_.i64, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extend_low_i32x4(a) simde_wasm_i64x2_extend_low_i32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extend_low_u8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extend_low_u8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmovl_u8(vget_low_u8(a_.neon_u8)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu8_epi16(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srli_epi16(_mm_unpacklo_epi8(a_.sse_m128i, a_.sse_m128i), 8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_mergeh(a_.altivec_i8, vec_splat_s8(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint8_t v SIMDE_VECTOR(8) = { + a_.u8[0], a_.u8[1], a_.u8[2], a_.u8[3], + a_.u8[4], a_.u8[5], a_.u8[6], a_.u8[7] + }; + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.u8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extend_low_u8x16(a) simde_wasm_u16x8_extend_low_u8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extend_low_u16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extend_low_u16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmovl_u16(vget_low_u16(a_.neon_u16)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu16_epi32(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srli_epi32(_mm_unpacklo_epi16(a_.sse_m128i, a_.sse_m128i), 16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_mergeh(a_.altivec_i16, vec_splat_s16(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint16_t v SIMDE_VECTOR(8) = { a_.u16[0], a_.u16[1], a_.u16[2], a_.u16[3] }; + + SIMDE_CONVERT_VECTOR_(r_.i32, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.u16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extend_low_u16x8(a) simde_wasm_u32x4_extend_low_u16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_extend_low_u32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_extend_low_u32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vmovl_u32(vget_low_u32(a_.neon_u32)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu32_epi64(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i =_mm_unpacklo_epi32(a_.sse_m128i, _mm_setzero_si128()); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_mergeh(a_.altivec_i32, vec_splat_s32(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint32_t v SIMDE_VECTOR(8) = { a_.u32[0], a_.u32[1] }; + + SIMDE_CONVERT_VECTOR_(r_.u64, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(int64_t, a_.u32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extend_low_u32x4(a) simde_wasm_u64x2_extend_low_u32x4((a)) +#endif + +/* promote */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_promote_low_f32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_promote_low_f32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_cvtps_pd(a_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vcvt_f64_f32(vget_low_f32(a_.neon_f32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_unpackh(a_.altivec_f32); + #elif HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && HEDLEY_HAS_BUILTIN(__builtin_convertvector) + r_.f64 = __builtin_convertvector(__builtin_shufflevector(a_.f32, a_.f32, 0, 1), __typeof__(r_.f64)); + #else + r_.f64[0] = HEDLEY_STATIC_CAST(simde_float64, a_.f32[0]); + r_.f64[1] = HEDLEY_STATIC_CAST(simde_float64, a_.f32[1]); + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_promote_low_f32x4(a) simde_wasm_f64x2_promote_low_f32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extend_high_i8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extend_high_i8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmovl_s8(vget_high_s8(a_.neon_i8)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi8_epi16(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srai_epi16(_mm_unpackhi_epi8(a_.sse_m128i, a_.sse_m128i), 8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = + vec_sra( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(short), vec_mergel(a_.altivec_i8, a_.altivec_i8)), + vec_splats(HEDLEY_STATIC_CAST(unsigned short, 8) + ) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int8_t v SIMDE_VECTOR(8) = { + a_.i8[ 8], a_.i8[ 9], a_.i8[10], a_.i8[11], + a_.i8[12], a_.i8[13], a_.i8[14], a_.i8[15] + }; + + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[i + 8]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extend_high_i8x16(a) simde_wasm_i16x8_extend_high_i8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extend_high_i16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extend_high_i16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmovl_s16(vget_high_s16(a_.neon_i16)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi16_epi32(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srai_epi32(_mm_unpackhi_epi16(a_.sse_m128i, a_.sse_m128i), 16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_sra(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(int), vec_mergel(a_.altivec_i16, a_.altivec_i16)), + vec_splats(HEDLEY_STATIC_CAST(unsigned int, 16)) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int16_t v SIMDE_VECTOR(8) = { a_.i16[4], a_.i16[5], a_.i16[6], a_.i16[7] }; + + SIMDE_CONVERT_VECTOR_(r_.i32, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[i + 4]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extend_high_i16x8(a) simde_wasm_i32x4_extend_high_i16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_extend_high_i32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_extend_high_i32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vmovl_s32(vget_high_s32(a_.neon_i32)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepi32_epi64(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_unpackhi_epi32(a_.sse_m128i, _mm_cmpgt_epi32(_mm_setzero_si128(), a_.sse_m128i)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_i64 = + vec_sra(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), vec_mergel(a_.altivec_i32, a_.altivec_i32)), + vec_splats(HEDLEY_STATIC_CAST(unsigned long long, 32)) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_mergel( + a_.altivec_i32, + HEDLEY_REINTERPRET_CAST( + SIMDE_POWER_ALTIVEC_VECTOR(int), + vec_cmpgt(vec_splat_s32(0), a_.altivec_i32) + ) + ); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const int32_t v SIMDE_VECTOR(8) = { a_.i32[2], a_.i32[3] }; + + SIMDE_CONVERT_VECTOR_(r_.i64, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i32[i + 2]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extend_high_i32x4(a) simde_wasm_i64x2_extend_high_i32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extend_high_u8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extend_high_u8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmovl_u8(vget_high_u8(a_.neon_u8)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu8_epi16(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srli_epi16(_mm_unpackhi_epi8(a_.sse_m128i, a_.sse_m128i), 8); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i8 = vec_mergel(a_.altivec_i8, vec_splat_s8(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint8_t v SIMDE_VECTOR(8) = { + a_.u8[ 8], a_.u8[ 9], a_.u8[10], a_.u8[11], + a_.u8[12], a_.u8[13], a_.u8[14], a_.u8[15] + }; + + SIMDE_CONVERT_VECTOR_(r_.u16, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u8[i + 8]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extend_high_u8x16(a) simde_wasm_u16x8_extend_high_u8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extend_high_u16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extend_high_u16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmovl_u16(vget_high_u16(a_.neon_u16)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu16_epi32(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_srli_epi32(_mm_unpackhi_epi16(a_.sse_m128i, a_.sse_m128i), 16); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = vec_mergel(a_.altivec_i16, vec_splat_s16(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint16_t v SIMDE_VECTOR(8) = { a_.u16[4], a_.u16[5], a_.u16[6], a_.u16[7] }; + + SIMDE_CONVERT_VECTOR_(r_.u32, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u16[i + 4]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extend_high_u16x8(a) simde_wasm_u32x4_extend_high_u16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_extend_high_u32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_extend_high_u32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vmovl_u32(vget_high_u32(a_.neon_u32)); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = _mm_cvtepu32_epi64(_mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 2, 3, 2))); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i =_mm_unpackhi_epi32(a_.sse_m128i, _mm_setzero_si128()); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_mergel(a_.altivec_i32, vec_splat_s32(0)); + #elif defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + const uint32_t v SIMDE_VECTOR(8) = { a_.u32[2], a_.u32[3] }; + + SIMDE_CONVERT_VECTOR_(r_.u64, v); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u32[i + 2]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extend_high_u32x4(a) simde_wasm_u64x2_extend_high_u32x4((a)) +#endif + +/* extmul_low */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extmul_low_i8x16 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extmul_low_i8x16(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmull_s8(vget_low_s8(a_.neon_i8), vget_low_s8(b_.neon_i8)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed char) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(signed char) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_i8, a_.altivec_i8); + bshuf = vec_mergeh(b_.altivec_i8, b_.altivec_i8); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 + }; + ashuf = vec_perm(a_.altivec_i8, a_.altivec_i8, perm); + bshuf = vec_perm(b_.altivec_i8, b_.altivec_i8, perm); + #endif + + r_.altivec_i16 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_mullo_epi16( + _mm_srai_epi16(_mm_unpacklo_epi8(a_.sse_m128i, a_.sse_m128i), 8), + _mm_srai_epi16(_mm_unpacklo_epi8(b_.sse_m128i, b_.sse_m128i), 8) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i16 = + __builtin_convertvector( + __builtin_shufflevector(a_.i8, a_.i8, 0, 1, 2, 3, 4, 5, 6, 7), + __typeof__(r_.i16) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i8, b_.i8, 0, 1, 2, 3, 4, 5, 6, 7), + __typeof__(r_.i16) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[i]) * HEDLEY_STATIC_CAST(int16_t, b_.i8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extmul_low_i8x16(a, b) simde_wasm_i16x8_extmul_low_i8x16((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extmul_low_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extmul_low_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmull_s16(vget_low_s16(a_.neon_i16), vget_low_s16(b_.neon_i16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed short) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(signed short) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_i16, a_.altivec_i16); + bshuf = vec_mergeh(b_.altivec_i16, b_.altivec_i16); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 0, 1, + 2, 3, 2, 3, + 4, 5, 4, 5, + 6, 7, 6, 7 + }; + ashuf = vec_perm(a_.altivec_i16, a_.altivec_i16, perm); + bshuf = vec_perm(b_.altivec_i16, b_.altivec_i16, perm); + #endif + + r_.altivec_i32 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_unpacklo_epi16( + _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i), + _mm_mulhi_epi16(a_.sse_m128i, b_.sse_m128i) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i32 = + __builtin_convertvector( + __builtin_shufflevector(a_.i16, a_.i16, 0, 1, 2, 3), + __typeof__(r_.i32) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i16, b_.i16, 0, 1, 2, 3), + __typeof__(r_.i32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[i]) * HEDLEY_STATIC_CAST(int32_t, b_.i16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extmul_low_i16x8(a, b) simde_wasm_i32x4_extmul_low_i16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_extmul_low_i32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_extmul_low_i32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vmull_s32(vget_low_s32(a_.neon_i32), vget_low_s32(b_.neon_i32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed int) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(signed int) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_i32, a_.altivec_i32); + bshuf = vec_mergeh(b_.altivec_i32, b_.altivec_i32); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 2, 3, 0, 1, 2, 3, + 4, 5, 6, 7, 4, 5, 6, 7 + }; + ashuf = vec_perm(a_.altivec_i32, a_.altivec_i32, perm); + bshuf = vec_perm(b_.altivec_i32, b_.altivec_i32, perm); + #endif + + r_.altivec_i64 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = + _mm_mul_epi32( + _mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(1, 1, 0, 0)), + _mm_shuffle_epi32(b_.sse_m128i, _MM_SHUFFLE(1, 1, 0, 0)) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i64 = + __builtin_convertvector( + __builtin_shufflevector(a_.i32, a_.i32, 0, 1), + __typeof__(r_.i64) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i32, b_.i32, 0, 1), + __typeof__(r_.i64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i32[i]) * HEDLEY_STATIC_CAST(int64_t, b_.i32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extmul_low_i32x4(a, b) simde_wasm_i64x2_extmul_low_i32x4((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extmul_low_u8x16 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extmul_low_u8x16(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmull_u8(vget_low_u8(a_.neon_u8), vget_low_u8(b_.neon_u8)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_u8, a_.altivec_u8); + bshuf = vec_mergeh(b_.altivec_u8, b_.altivec_u8); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 + }; + ashuf = vec_perm(a_.altivec_u8, a_.altivec_u8, perm); + bshuf = vec_perm(b_.altivec_u8, b_.altivec_u8, perm); + #endif + + r_.altivec_u16 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u16 = + __builtin_convertvector( + __builtin_shufflevector(a_.u8, a_.u8, 0, 1, 2, 3, 4, 5, 6, 7), + __typeof__(r_.u16) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u8, b_.u8, 0, 1, 2, 3, 4, 5, 6, 7), + __typeof__(r_.u16) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u8[i]) * HEDLEY_STATIC_CAST(uint16_t, b_.u8[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extmul_low_u8x16(a, b) simde_wasm_u16x8_extmul_low_u8x16((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extmul_low_u16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extmul_low_u16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmull_u16(vget_low_u16(a_.neon_u16), vget_low_u16(b_.neon_u16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_u16, a_.altivec_u16); + bshuf = vec_mergeh(b_.altivec_u16, b_.altivec_u16); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 0, 1, + 2, 3, 2, 3, + 4, 5, 4, 5, + 6, 7, 6, 7 + }; + ashuf = vec_perm(a_.altivec_u16, a_.altivec_u16, perm); + bshuf = vec_perm(b_.altivec_u16, b_.altivec_u16, perm); + #endif + + r_.altivec_u32 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_unpacklo_epi16( + _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i), + _mm_mulhi_epu16(a_.sse_m128i, b_.sse_m128i) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u32 = + __builtin_convertvector( + __builtin_shufflevector(a_.u16, a_.u16, 0, 1, 2, 3), + __typeof__(r_.u32) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u16, b_.u16, 0, 1, 2, 3), + __typeof__(r_.u32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u16[i]) * HEDLEY_STATIC_CAST(uint32_t, b_.u16[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extmul_low_u16x8(a, b) simde_wasm_u32x4_extmul_low_u16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_extmul_low_u32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_extmul_low_u32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vmull_u32(vget_low_u32(a_.neon_u32), vget_low_u32(b_.neon_u32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned int) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(unsigned int) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergeh(a_.altivec_u32, a_.altivec_u32); + bshuf = vec_mergeh(b_.altivec_u32, b_.altivec_u32); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 2, 3, 0, 1, 2, 3, + 4, 5, 6, 7, 4, 5, 6, 7 + }; + ashuf = vec_perm(a_.altivec_u32, a_.altivec_u32, perm); + bshuf = vec_perm(b_.altivec_u32, b_.altivec_u32, perm); + #endif + + r_.altivec_u64 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_mul_epu32( + _mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(1, 1, 0, 0)), + _mm_shuffle_epi32(b_.sse_m128i, _MM_SHUFFLE(1, 1, 0, 0)) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u64 = + __builtin_convertvector( + __builtin_shufflevector(a_.u32, a_.u32, 0, 1), + __typeof__(r_.u64) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u32, b_.u32, 0, 1), + __typeof__(r_.u64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(uint64_t, a_.u32[i]) * HEDLEY_STATIC_CAST(uint64_t, b_.u32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extmul_low_u32x4(a, b) simde_wasm_u64x2_extmul_low_u32x4((a), (b)) +#endif + +/* extmul_high */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extmul_high_i8x16 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extmul_high_i8x16(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i16 = vmull_high_s8(a_.neon_i8, b_.neon_i8); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vmull_s8(vget_high_s8(a_.neon_i8), vget_high_s8(b_.neon_i8)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i16 = + vec_mule( + vec_mergel(a_.altivec_i8, a_.altivec_i8), + vec_mergel(b_.altivec_i8, b_.altivec_i8) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_mullo_epi16( + _mm_srai_epi16(_mm_unpackhi_epi8(a_.sse_m128i, a_.sse_m128i), 8), + _mm_srai_epi16(_mm_unpackhi_epi8(b_.sse_m128i, b_.sse_m128i), 8) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i16 = + __builtin_convertvector( + __builtin_shufflevector(a_.i8, a_.i8, 8, 9, 10, 11, 12, 13, 14, 15), + __typeof__(r_.i16) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i8, b_.i8, 8, 9, 10, 11, 12, 13, 14, 15), + __typeof__(r_.i16) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[i + 8]) * HEDLEY_STATIC_CAST(int16_t, b_.i8[i + 8]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extmul_high_i8x16(a, b) simde_wasm_i16x8_extmul_high_i8x16((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extmul_high_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extmul_high_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i32 = vmull_high_s16(a_.neon_i16, b_.neon_i16); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vmull_s16(vget_high_s16(a_.neon_i16), vget_high_s16(b_.neon_i16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = + vec_mule( + vec_mergel(a_.altivec_i16, a_.altivec_i16), + vec_mergel(b_.altivec_i16, b_.altivec_i16) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_unpackhi_epi16( + _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i), + _mm_mulhi_epi16(a_.sse_m128i, b_.sse_m128i) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i32 = + __builtin_convertvector( + __builtin_shufflevector(a_.i16, a_.i16, 4, 5, 6, 7), + __typeof__(r_.i32) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i16, b_.i16, 4, 5, 6, 7), + __typeof__(r_.i32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[i + 4]) * HEDLEY_STATIC_CAST(int32_t, b_.i16[i + 4]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extmul_high_i16x8(a, b) simde_wasm_i32x4_extmul_high_i16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_extmul_high_i32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_extmul_high_i32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i64 = vmull_high_s32(a_.neon_i32, b_.neon_i32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i64 = vmull_s32(vget_high_s32(a_.neon_i32), vget_high_s32(b_.neon_i32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed int) ashuf; + SIMDE_POWER_ALTIVEC_VECTOR(signed int) bshuf; + + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + ashuf = vec_mergel(a_.altivec_i32, a_.altivec_i32); + bshuf = vec_mergel(b_.altivec_i32, b_.altivec_i32); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 8, 9, 10, 11, 8, 9, 10, 11, + 12, 13, 14, 15, 12, 13, 14, 15 + }; + ashuf = vec_perm(a_.altivec_i32, a_.altivec_i32, perm); + bshuf = vec_perm(b_.altivec_i32, b_.altivec_i32, perm); + #endif + + r_.altivec_i64 = vec_mule(ashuf, bshuf); + #elif defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = + _mm_mul_epi32( + _mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 3, 2, 2)), + _mm_shuffle_epi32(b_.sse_m128i, _MM_SHUFFLE(3, 3, 2, 2)) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.i64 = + __builtin_convertvector( + __builtin_shufflevector(a_.i32, a_.i32, 2, 3), + __typeof__(r_.i64) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.i32, b_.i32, 2, 3), + __typeof__(r_.i64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, a_.i32[i + 2]) * HEDLEY_STATIC_CAST(int64_t, b_.i32[i + 2]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_extmul_high_i32x4(a, b) simde_wasm_i64x2_extmul_high_i32x4((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extmul_high_u8x16 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extmul_high_u8x16(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u16 = vmull_high_u8(a_.neon_u8, b_.neon_u8); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vmull_u8(vget_high_u8(a_.neon_u8), vget_high_u8(b_.neon_u8)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u16 = + vec_mule( + vec_mergel(a_.altivec_u8, a_.altivec_u8), + vec_mergel(b_.altivec_u8, b_.altivec_u8) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u16 = + __builtin_convertvector( + __builtin_shufflevector(a_.u8, a_.u8, 8, 9, 10, 11, 12, 13, 14, 15), + __typeof__(r_.u16) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u8, b_.u8, 8, 9, 10, 11, 12, 13, 14, 15), + __typeof__(r_.u16) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u8[i + 8]) * HEDLEY_STATIC_CAST(uint16_t, b_.u8[i + 8]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extmul_high_u8x16(a, b) simde_wasm_u16x8_extmul_high_u8x16((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extmul_high_u16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extmul_high_u16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u32 = vmull_high_u16(a_.neon_u16, b_.neon_u16); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vmull_u16(vget_high_u16(a_.neon_u16), vget_high_u16(b_.neon_u16)); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_u32 = + vec_mule( + vec_mergel(a_.altivec_u16, a_.altivec_u16), + vec_mergel(b_.altivec_u16, b_.altivec_u16) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_unpackhi_epi16( + _mm_mullo_epi16(a_.sse_m128i, b_.sse_m128i), + _mm_mulhi_epu16(a_.sse_m128i, b_.sse_m128i) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u32 = + __builtin_convertvector( + __builtin_shufflevector(a_.u16, a_.u16, 4, 5, 6, 7), + __typeof__(r_.u32) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u16, b_.u16, 4, 5, 6, 7), + __typeof__(r_.u32) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u16[i + 4]) * HEDLEY_STATIC_CAST(uint32_t, b_.u16[i + 4]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extmul_high_u16x8(a, b) simde_wasm_u32x4_extmul_high_u16x8((a), (b)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_extmul_high_u32x4 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_extmul_high_u32x4(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u64 = vmull_high_u32(a_.neon_u32, b_.neon_u32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u64 = vmull_u32(vget_high_u32(a_.neon_u32), vget_high_u32(b_.neon_u32)); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_u64 = + vec_mule( + vec_mergel(a_.altivec_u32, a_.altivec_u32), + vec_mergel(b_.altivec_u32, b_.altivec_u32) + ); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_mul_epu32( + _mm_shuffle_epi32(a_.sse_m128i, _MM_SHUFFLE(3, 3, 2, 2)), + _mm_shuffle_epi32(b_.sse_m128i, _MM_SHUFFLE(3, 3, 2, 2)) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + r_.u64 = + __builtin_convertvector( + __builtin_shufflevector(a_.u32, a_.u32, 2, 3), + __typeof__(r_.u64) + ) + * + __builtin_convertvector( + __builtin_shufflevector(b_.u32, b_.u32, 2, 3), + __typeof__(r_.u64) + ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(uint64_t, a_.u32[i + 2]) * HEDLEY_STATIC_CAST(uint64_t, b_.u32[i + 2]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_extmul_high_u32x4(a, b) simde_wasm_u64x2_extmul_high_u32x4((a), (b)) +#endif + +/* extadd_pairwise */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_extadd_pairwise_i8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_extadd_pairwise_i8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i16 = vpaddlq_s8(a_.neon_i8); + #elif defined(SIMDE_X86_XOP_NATIVE) + r_.sse_m128i = _mm_haddw_epi8(a_.sse_m128i); + #elif defined(SIMDE_X86_SSSE3_NATIVE) + r_.sse_m128i = _mm_maddubs_epi16(_mm_set1_epi8(INT8_C(1)), a_.sse_m128i); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed char) one = vec_splat_s8(1); + r_.altivec_i16 = + vec_add( + vec_mule(a_.altivec_i8, one), + vec_mulo(a_.altivec_i8, one) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.i16 = + ((a_.i16 << 8) >> 8) + + ((a_.i16 >> 8) ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, a_.i8[(i * 2)]) + HEDLEY_STATIC_CAST(int16_t, a_.i8[(i * 2) + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_extadd_pairwise_i8x16(a) simde_wasm_i16x8_extadd_pairwise_i8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_extadd_pairwise_i16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_extadd_pairwise_i16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vpaddlq_s16(a_.neon_i16); + #elif defined(SIMDE_X86_XOP_NATIVE) + r_.sse_m128i = _mm_haddd_epi16(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_madd_epi16(a_.sse_m128i, _mm_set1_epi16(INT8_C(1))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(signed short) one = vec_splat_s16(1); + r_.altivec_i32 = + vec_add( + vec_mule(a_.altivec_i16, one), + vec_mulo(a_.altivec_i16, one) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.i32 = + ((a_.i32 << 16) >> 16) + + ((a_.i32 >> 16) ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.i16[(i * 2)]) + HEDLEY_STATIC_CAST(int32_t, a_.i16[(i * 2) + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_extadd_pairwise_i16x8(a) simde_wasm_i32x4_extadd_pairwise_i16x8((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_extadd_pairwise_u8x16 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_extadd_pairwise_u8x16(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u16 = vpaddlq_u8(a_.neon_u8); + #elif defined(SIMDE_X86_XOP_NATIVE) + r_.sse_m128i = _mm_haddw_epu8(a_.sse_m128i); + #elif defined(SIMDE_X86_SSSE3_NATIVE) + r_.sse_m128i = _mm_maddubs_epi16(a_.sse_m128i, _mm_set1_epi8(INT8_C(1))); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) one = vec_splat_u8(1); + r_.altivec_u16 = + vec_add( + vec_mule(a_.altivec_u8, one), + vec_mulo(a_.altivec_u8, one) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.u16 = + ((a_.u16 << 8) >> 8) + + ((a_.u16 >> 8) ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, a_.u8[(i * 2)]) + HEDLEY_STATIC_CAST(uint16_t, a_.u8[(i * 2) + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_extadd_pairwise_u8x16(a) simde_wasm_u16x8_extadd_pairwise_u8x16((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_extadd_pairwise_u16x8 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_extadd_pairwise_u16x8(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vpaddlq_u16(a_.neon_u16); + #elif defined(SIMDE_X86_XOP_NATIVE) + r_.sse_m128i = _mm_haddd_epu16(a_.sse_m128i); + #elif defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = + _mm_add_epi32( + _mm_srli_epi32(a_.sse_m128i, 16), + _mm_and_si128(a_.sse_m128i, _mm_set1_epi32(INT32_C(0x0000ffff))) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(unsigned short) one = vec_splat_u16(1); + r_.altivec_u32 = + vec_add( + vec_mule(a_.altivec_u16, one), + vec_mulo(a_.altivec_u16, one) + ); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_SCALAR) + r_.u32 = + ((a_.u32 << 16) >> 16) + + ((a_.u32 >> 16) ); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.u16[(i * 2)]) + HEDLEY_STATIC_CAST(uint32_t, a_.u16[(i * 2) + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_extadd_pairwise_u16x8(a) simde_wasm_u32x4_extadd_pairwise_u16x8((a)) +#endif + +/* X_load_Y */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i16x8_load8x8 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i16x8_load8x8(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + int8_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.i16, v); + #else + SIMDE_ALIGN_TO_16 int8_t v[8]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i16) / sizeof(r_.i16[0])) ; i++) { + r_.i16[i] = HEDLEY_STATIC_CAST(int16_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i16x8_load8x8(mem) simde_wasm_i16x8_load8x8((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_load16x4 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_load16x4(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + int16_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.i32, v); + #else + SIMDE_ALIGN_TO_16 int16_t v[4]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_load16x4(mem) simde_wasm_i32x4_load16x4((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i64x2_load32x2 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i64x2_load32x2(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) && !defined(SIMDE_BUG_CLANG_50893) + int32_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.i64, v); + #else + SIMDE_ALIGN_TO_16 int32_t v[2]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i64) / sizeof(r_.i64[0])) ; i++) { + r_.i64[i] = HEDLEY_STATIC_CAST(int64_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i64x2_load32x2(mem) simde_wasm_i64x2_load32x2((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u16x8_load8x8 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u16x8_load8x8(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + uint8_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.u16, v); + #else + SIMDE_ALIGN_TO_16 uint8_t v[8]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u16) / sizeof(r_.u16[0])) ; i++) { + r_.u16[i] = HEDLEY_STATIC_CAST(uint16_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u16x8_load8x8(mem) simde_wasm_u16x8_load8x8((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_load16x4 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_load16x4(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + uint16_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.u32, v); + #else + SIMDE_ALIGN_TO_16 uint16_t v[4]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_load16x4(mem) simde_wasm_u32x4_load16x4((mem)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u64x2_load32x2 (const void * mem) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u64x2_load32x2(mem); + #else + simde_v128_private r_; + + #if defined(SIMDE_CONVERT_VECTOR_) && !defined(SIMDE_BUG_GCC_100762) + uint32_t v SIMDE_VECTOR(8); + simde_memcpy(&v, mem, sizeof(v)); + SIMDE_CONVERT_VECTOR_(r_.u64, v); + #else + SIMDE_ALIGN_TO_16 uint32_t v[2]; + simde_memcpy(v, mem, sizeof(v)); + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u64) / sizeof(r_.u64[0])) ; i++) { + r_.u64[i] = HEDLEY_STATIC_CAST(uint64_t, v[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u64x2_load32x2(mem) simde_wasm_u64x2_load32x2((mem)) +#endif + +/* load*_zero */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load32_zero (const void * a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load32_zero(a); + #else + simde_v128_private r_; + + int32_t a_; + simde_memcpy(&a_, a, sizeof(a_)); + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_cvtsi32_si128(a_); + #else + r_.i32[0] = a_; + r_.i32[1] = 0; + r_.i32[2] = 0; + r_.i32[3] = 0; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load32_zero(a) simde_wasm_v128_load32_zero((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load64_zero (const void * a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_v128_load64_zero(a); + #else + simde_v128_private r_; + + int64_t a_; + simde_memcpy(&a_, a, sizeof(a_)); + + #if defined(SIMDE_X86_SSE2_NATIVE) && defined(SIMDE_ARCH_AMD64) + r_.sse_m128i = _mm_cvtsi64_si128(a_); + #else + r_.i64[0] = a_; + r_.i64[1] = 0; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load64_zero(a) simde_wasm_v128_load64_zero((a)) +#endif + +/* load*_lane */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load8_lane (const void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 15) { + simde_v128_private + a_ = simde_v128_to_private(vec); + + #if defined(SIMDE_BUG_CLANG_50901) + simde_v128_private r_ = simde_v128_to_private(vec); + r_.altivec_i8 = vec_insert(*HEDLEY_REINTERPRET_CAST(const signed char *, a), a_.altivec_i8, lane); + return simde_v128_from_private(r_); + #else + a_.i8[lane] = *HEDLEY_REINTERPRET_CAST(const int8_t *, a); + return simde_v128_from_private(a_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_load8_lane(a, vec, lane) wasm_v128_load8_lane(HEDLEY_CONST_CAST(int8_t *, (a)), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load8_lane(a, vec, lane) simde_wasm_v128_load8_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load16_lane (const void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 7) { + simde_v128_private + a_ = simde_v128_to_private(vec); + + int16_t tmp = 0; + simde_memcpy(&tmp, a, sizeof(int16_t)); + a_.i16[lane] = tmp; + + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_load16_lane(a, vec, lane) wasm_v128_load16_lane(HEDLEY_CONST_CAST(int16_t *, (a)), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load16_lane(a, vec, lane) simde_wasm_v128_load16_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load32_lane (const void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { + simde_v128_private + a_ = simde_v128_to_private(vec); + + int32_t tmp = 0; + simde_memcpy(&tmp, a, sizeof(int32_t)); + a_.i32[lane] = tmp; + + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_load32_lane(a, vec, lane) wasm_v128_load32_lane(HEDLEY_CONST_CAST(int32_t *, (a)), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load32_lane(a, vec, lane) simde_wasm_v128_load32_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_v128_load64_lane (const void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { + simde_v128_private + a_ = simde_v128_to_private(vec); + + int64_t tmp = 0; + simde_memcpy(&tmp, a, sizeof(int64_t)); + a_.i64[lane] = tmp; + + return simde_v128_from_private(a_); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_load64_lane(a, vec, lane) wasm_v128_load64_lane(HEDLEY_CONST_CAST(int64_t *, (a)), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_load64_lane(a, vec, lane) simde_wasm_v128_load64_lane((a), (vec), (lane)) +#endif + +/* store*_lane */ + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store8_lane (void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 15) { + simde_v128_private + vec_ = simde_v128_to_private(vec); + + int8_t tmp = vec_.i8[lane]; + simde_memcpy(a, &tmp, sizeof(tmp)); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_store8_lane(a, vec, lane) wasm_v128_store8_lane((a), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store8_lane(a, vec, lane) simde_wasm_v128_store8_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store16_lane (void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 7) { + simde_v128_private + vec_ = simde_v128_to_private(vec); + + int16_t tmp = vec_.i16[lane]; + simde_memcpy(a, &tmp, sizeof(tmp)); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_store16_lane(a, vec, lane) wasm_v128_store16_lane((a), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store16_lane(a, vec, lane) simde_wasm_v128_store16_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store32_lane (void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 3) { + simde_v128_private + vec_ = simde_v128_to_private(vec); + + int32_t tmp = vec_.i32[lane]; + simde_memcpy(a, &tmp, sizeof(tmp)); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_store32_lane(a, vec, lane) wasm_v128_store32_lane((a), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store32_lane(a, vec, lane) simde_wasm_v128_store32_lane((a), (vec), (lane)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +void +simde_wasm_v128_store64_lane (void * a, simde_v128_t vec, const int lane) + SIMDE_REQUIRE_CONSTANT_RANGE(lane, 0, 1) { + simde_v128_private + vec_ = simde_v128_to_private(vec); + + int64_t tmp = vec_.i64[lane]; + simde_memcpy(a, &tmp, sizeof(tmp)); +} +#if defined(SIMDE_WASM_SIMD128_NATIVE) + #define simde_wasm_v128_store64_lane(a, vec, lane) wasm_v128_store64_lane((a), (vec), (lane)) +#endif +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_v128_store64_lane(a, vec, lane) simde_wasm_v128_store64_lane((a), (vec), (lane)) +#endif + +/* convert */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_convert_i32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_convert_i32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128 = _mm_cvtepi32_ps(a_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A32V7) + r_.neon_f32 = vcvtq_f32_s32(a_.neon_i32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + HEDLEY_DIAGNOSTIC_PUSH + #if HEDLEY_HAS_WARNING("-Wc11-extensions") + #pragma clang diagnostic ignored "-Wc11-extensions" + #endif + r_.altivec_f32 = vec_ctf(a_.altivec_i32, 0); + HEDLEY_DIAGNOSTIC_POP + #elif defined(SIMDE_CONVERT_VECTOR_) + SIMDE_CONVERT_VECTOR_(r_.f32, a_.i32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = HEDLEY_STATIC_CAST(simde_float32, a_.i32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_convert_i32x4(a) simde_wasm_f32x4_convert_i32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_convert_u32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_convert_u32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_CONVERT_VECTOR_) + SIMDE_CONVERT_VECTOR_(r_.f32, a_.u32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = HEDLEY_STATIC_CAST(simde_float32, a_.u32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_convert_u32x4(a) simde_wasm_f32x4_convert_u32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_convert_low_i32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_convert_low_i32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && HEDLEY_HAS_BUILTIN(__builtin_convertvector) + r_.f64 = __builtin_convertvector(__builtin_shufflevector(a_.i32, a_.i32, 0, 1), __typeof__(r_.f64)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = HEDLEY_STATIC_CAST(simde_float64, a_.i32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_convert_low_i32x4(a) simde_wasm_f64x2_convert_low_i32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_convert_low_u32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_convert_low_u32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if HEDLEY_HAS_BUILTIN(__builtin_shufflevector) && HEDLEY_HAS_BUILTIN(__builtin_convertvector) + r_.f64 = __builtin_convertvector(__builtin_shufflevector(a_.u32, a_.u32, 0, 1), __typeof__(r_.f64)); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = HEDLEY_STATIC_CAST(simde_float64, a_.u32[i]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_convert_low_u32x4(a) simde_wasm_f64x2_convert_low_u32x4((a)) +#endif + +/* trunc_sat */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_trunc_sat_f32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_trunc_sat_f32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i32 = vcvtq_s32_f32(a_.neon_f32); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_FAST_CONVERSION_RANGE) + SIMDE_CONVERT_VECTOR_(r_.i32, a_.f32); + #elif defined(SIMDE_X86_SSE2_NATIVE) + const __m128i i32_max_mask = _mm_castps_si128(_mm_cmpgt_ps(a_.sse_m128, _mm_set1_ps(SIMDE_FLOAT32_C(2147483520.0)))); + const __m128 clamped = _mm_max_ps(a_.sse_m128, _mm_set1_ps(HEDLEY_STATIC_CAST(simde_float32, INT32_MIN))); + r_.sse_m128i = _mm_cvttps_epi32(clamped); + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128i = + _mm_castps_si128( + _mm_blendv_ps( + _mm_castsi128_ps(r_.sse_m128i), + _mm_castsi128_ps(_mm_set1_epi32(INT32_MAX)), + _mm_castsi128_ps(i32_max_mask) + ) + ); + #else + r_.sse_m128i = + _mm_or_si128( + _mm_and_si128(i32_max_mask, _mm_set1_epi32(INT32_MAX)), + _mm_andnot_si128(i32_max_mask, r_.sse_m128i) + ); + #endif + r_.sse_m128i = _mm_and_si128(r_.sse_m128i, _mm_castps_si128(_mm_cmpord_ps(a_.sse_m128, a_.sse_m128))); + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_IEEE754_STORAGE) && !defined(SIMDE_ARCH_POWER) + SIMDE_CONVERT_VECTOR_(r_.i32, a_.f32); + + const __typeof__(a_.f32) max_representable = { SIMDE_FLOAT32_C(2147483520.0), SIMDE_FLOAT32_C(2147483520.0), SIMDE_FLOAT32_C(2147483520.0), SIMDE_FLOAT32_C(2147483520.0) }; + __typeof__(r_.i32) max_mask = HEDLEY_REINTERPRET_CAST(__typeof__(max_mask), a_.f32 > max_representable); + __typeof__(r_.i32) max_i32 = { INT32_MAX, INT32_MAX, INT32_MAX, INT32_MAX }; + r_.i32 = (max_i32 & max_mask) | (r_.i32 & ~max_mask); + + const __typeof__(a_.f32) min_representable = { HEDLEY_STATIC_CAST(simde_float32, INT32_MIN), HEDLEY_STATIC_CAST(simde_float32, INT32_MIN), HEDLEY_STATIC_CAST(simde_float32, INT32_MIN), HEDLEY_STATIC_CAST(simde_float32, INT32_MIN) }; + __typeof__(r_.i32) min_mask = HEDLEY_REINTERPRET_CAST(__typeof__(min_mask), a_.f32 < min_representable); + __typeof__(r_.i32) min_i32 = { INT32_MIN, INT32_MIN, INT32_MIN, INT32_MIN }; + r_.i32 = (min_i32 & min_mask) | (r_.i32 & ~min_mask); + + r_.i32 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.i32), a_.f32 == a_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.i32) / sizeof(r_.i32[0])) ; i++) { + if (simde_math_isnanf(a_.f32[i])) { + r_.i32[i] = INT32_C(0); + } else if (a_.f32[i] < HEDLEY_STATIC_CAST(simde_float32, INT32_MIN)) { + r_.i32[i] = INT32_MIN; + } else if (a_.f32[i] > HEDLEY_STATIC_CAST(simde_float32, INT32_MAX)) { + r_.i32[i] = INT32_MAX; + } else { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.f32[i]); + } + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_trunc_sat_f32x4(a) simde_wasm_i32x4_trunc_sat_f32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_trunc_sat_f32x4 (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_trunc_sat_f32x4(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_u32 = vcvtq_u32_f32(a_.neon_f32); + #elif defined(SIMDE_X86_SSE2_NATIVE) + #if defined(SIMDE_X86_AVX512VL_NATIVE) + r_.sse_m128i = _mm_cvttps_epu32(a_.sse_m128); + #else + __m128 first_oob_high = _mm_set1_ps(SIMDE_FLOAT32_C(4294967296.0)); + __m128 neg_zero_if_too_high = + _mm_castsi128_ps( + _mm_slli_epi32( + _mm_castps_si128(_mm_cmple_ps(first_oob_high, a_.sse_m128)), + 31 + ) + ); + r_.sse_m128i = + _mm_xor_si128( + _mm_cvttps_epi32( + _mm_sub_ps(a_.sse_m128, _mm_and_ps(neg_zero_if_too_high, first_oob_high)) + ), + _mm_castps_si128(neg_zero_if_too_high) + ); + #endif + + #if !defined(SIMDE_FAST_CONVERSION_RANGE) + r_.sse_m128i = _mm_and_si128(r_.sse_m128i, _mm_castps_si128(_mm_cmpgt_ps(a_.sse_m128, _mm_set1_ps(SIMDE_FLOAT32_C(0.0))))); + r_.sse_m128i = _mm_or_si128 (r_.sse_m128i, _mm_castps_si128(_mm_cmpge_ps(a_.sse_m128, _mm_set1_ps(SIMDE_FLOAT32_C(4294967296.0))))); + #endif + + #if !defined(SIMDE_FAST_NANS) + r_.sse_m128i = _mm_and_si128(r_.sse_m128i, _mm_castps_si128(_mm_cmpord_ps(a_.sse_m128, a_.sse_m128))); + #endif + #elif defined(SIMDE_CONVERT_VECTOR_) && defined(SIMDE_IEEE754_STORAGE) + SIMDE_CONVERT_VECTOR_(r_.u32, a_.f32); + + const __typeof__(a_.f32) max_representable = { SIMDE_FLOAT32_C(4294967040.0), SIMDE_FLOAT32_C(4294967040.0), SIMDE_FLOAT32_C(4294967040.0), SIMDE_FLOAT32_C(4294967040.0) }; + r_.u32 |= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.f32 > max_representable); + + const __typeof__(a_.f32) min_representable = { SIMDE_FLOAT32_C(0.0), }; + r_.u32 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.f32 > min_representable); + + r_.u32 &= HEDLEY_REINTERPRET_CAST(__typeof__(r_.u32), a_.f32 == a_.f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u32) / sizeof(r_.u32[0])) ; i++) { + if (simde_math_isnan(a_.f32[i]) || + a_.f32[i] < SIMDE_FLOAT32_C(0.0)) { + r_.u32[i] = UINT32_C(0); + } else if (a_.f32[i] > HEDLEY_STATIC_CAST(simde_float32, UINT32_MAX)) { + r_.u32[i] = UINT32_MAX; + } else { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.f32[i]); + } + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_trunc_sat_f32x4(a) simde_wasm_u32x4_trunc_sat_f32x4((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_trunc_sat_f64x2_zero (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_trunc_sat_f64x2_zero(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_i32 = vcombine_s32(vqmovn_s64(vcvtq_s64_f64(a_.neon_f64)), vdup_n_s32(INT32_C(0))); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + SIMDE_POWER_ALTIVEC_VECTOR(double) in_not_nan = + vec_and(a_.altivec_f64, vec_cmpeq(a_.altivec_f64, a_.altivec_f64)); + r_.altivec_i32 = vec_signede(in_not_nan); + #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i32 = + vec_pack( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), r_.altivec_i32), + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(long long), vec_splat_s32(0)) + ); + #else + SIMDE_POWER_ALTIVEC_VECTOR(unsigned char) perm = { + 0, 1, 2, 3, 4, 5, 6, 7, + 16, 17, 18, 19, 20, 21, 22, 23 + }; + r_.altivec_i32 = + HEDLEY_REINTERPRET_CAST( + SIMDE_POWER_ALTIVEC_VECTOR(signed int), + vec_perm( + HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed char), r_.altivec_i32), + vec_splat_s8(0), + perm + ) + ); + #endif + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(a_.f64) / sizeof(a_.f64[0])) ; i++) { + if (simde_math_isnan(a_.f64[i])) { + r_.i32[i] = INT32_C(0); + } else if (a_.f64[i] < HEDLEY_STATIC_CAST(simde_float64, INT32_MIN)) { + r_.i32[i] = INT32_MIN; + } else if (a_.f64[i] > HEDLEY_STATIC_CAST(simde_float64, INT32_MAX)) { + r_.i32[i] = INT32_MAX; + } else { + r_.i32[i] = HEDLEY_STATIC_CAST(int32_t, a_.f64[i]); + } + } + r_.i32[2] = 0; + r_.i32[3] = 0; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_trunc_sat_f64x2_zero(a) simde_wasm_i32x4_trunc_sat_f64x2_zero((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_u32x4_trunc_sat_f64x2_zero (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_u32x4_trunc_sat_f64x2_zero(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_u32 = vcombine_u32(vqmovn_u64(vcvtq_u64_f64(a_.neon_f64)), vdup_n_u32(UINT32_C(0))); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(a_.f64) / sizeof(a_.f64[0])) ; i++) { + if (simde_math_isnanf(a_.f64[i]) || + a_.f64[i] < SIMDE_FLOAT64_C(0.0)) { + r_.u32[i] = UINT32_C(0); + } else if (a_.f64[i] > HEDLEY_STATIC_CAST(simde_float64, UINT32_MAX)) { + r_.u32[i] = UINT32_MAX; + } else { + r_.u32[i] = HEDLEY_STATIC_CAST(uint32_t, a_.f64[i]); + } + } + r_.u32[2] = 0; + r_.u32[3] = 0; + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_u32x4_trunc_sat_f64x2_zero(a) simde_wasm_u32x4_trunc_sat_f64x2_zero((a)) +#endif + +/* popcnt */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i8x16_popcnt (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i8x16_popcnt(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_ARM_NEON_A32V7_NATIVE) + r_.neon_i8 = vcntq_s8(a_.neon_i8); + #elif defined(SIMDE_X86_AVX512VL_NATIVE) && defined(SIMDE_X86_AVX512BITALG_NATIVE) + r_.sse_m128i = _mm_popcnt_epi8(a_.sse_m128i); + #elif defined(SIMDE_X86_AVX2_NATIVE) + __m128i tmp0 = _mm_set1_epi8(0x0f); + __m128i tmp1 = _mm_andnot_si128(tmp0, a_.sse_m128i); + __m128i y = _mm_and_si128(tmp0, a_.sse_m128i); + tmp0 = _mm_set_epi8(4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0); + tmp1 = _mm_srli_epi16(tmp1, 4); + y = _mm_shuffle_epi8(tmp0, y); + tmp1 = _mm_shuffle_epi8(tmp0, tmp1); + return _mm_add_epi8(y, tmp1); + #elif defined(SIMDE_X86_SSSE3_NATIVE) + __m128i tmp0 = _mm_set1_epi8(0x0f); + __m128i tmp1 = _mm_and_si128(a_.sse_m128i, tmp0); + tmp0 = _mm_andnot_si128(tmp0, a_.sse_m128i); + __m128i y = _mm_set_epi8(4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0); + tmp0 = _mm_srli_epi16(tmp0, 4); + y = _mm_shuffle_epi8(y, tmp1); + tmp1 = _mm_set_epi8(4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0); + tmp1 = _mm_shuffle_epi8(tmp1, tmp0); + return _mm_add_epi8(y, tmp1); + #elif defined(SIMDE_X86_SSE2_NATIVE) + __m128i tmp0 = _mm_and_si128(_mm_srli_epi16(a_.sse_m128i, 1), _mm_set1_epi8(0x55)); + __m128i tmp1 = _mm_sub_epi8(a_.sse_m128i, tmp0); + tmp0 = tmp1; + tmp1 = _mm_and_si128(tmp1, _mm_set1_epi8(0x33)); + tmp0 = _mm_and_si128(_mm_srli_epi16(tmp0, 2), _mm_set1_epi8(0x33)); + tmp1 = _mm_add_epi8(tmp1, tmp0); + tmp0 = _mm_srli_epi16(tmp1, 4); + tmp1 = _mm_add_epi8(tmp1, tmp0); + r_.sse_m128i = _mm_and_si128(tmp1, _mm_set1_epi8(0x0f)); + #elif defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) + r_.altivec_i8 = HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(signed char), vec_popcnt(HEDLEY_REINTERPRET_CAST(SIMDE_POWER_ALTIVEC_VECTOR(unsigned char), a_.altivec_i8))); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.u8) / sizeof(r_.u8[0])) ; i++) { + uint8_t v = HEDLEY_STATIC_CAST(uint8_t, a_.u8[i]); + v = v - ((v >> 1) & (85)); + v = (v & (51)) + ((v >> (2)) & (51)); + v = (v + (v >> (4))) & (15); + r_.u8[i] = v >> (sizeof(uint8_t) - 1) * CHAR_BIT; + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i8x16_popcnt(a) simde_wasm_i8x16_popcnt((a)) +#endif + +/* dot */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_i32x4_dot_i16x8 (simde_v128_t a, simde_v128_t b) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_i32x4_dot_i16x8(a, b); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + b_ = simde_v128_to_private(b), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128i = _mm_madd_epi16(a_.sse_m128i, b_.sse_m128i); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + int32x4_t pl = vmull_s16(vget_low_s16(a_.neon_i16), vget_low_s16(b_.neon_i16)); + int32x4_t ph = vmull_high_s16(a_.neon_i16, b_.neon_i16); + r_.neon_i32 = vpaddq_s32(pl, ph); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + int32x4_t pl = vmull_s16(vget_low_s16(a_.neon_i16), vget_low_s16(b_.neon_i16)); + int32x4_t ph = vmull_s16(vget_high_s16(a_.neon_i16), vget_high_s16(b_.neon_i16)); + int32x2_t rl = vpadd_s32(vget_low_s32(pl), vget_high_s32(pl)); + int32x2_t rh = vpadd_s32(vget_low_s32(ph), vget_high_s32(ph)); + r_.neon_i32 = vcombine_s32(rl, rh); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_i32 = vec_msum(a_.altivec_i16, b_.altivec_i16, vec_splats(0)); + #elif defined(SIMDE_ZARCH_ZVECTOR_13_NATIVE) + r_.altivec_i32 = vec_mule(a_.altivec_i16, b_.altivec_i16) + vec_mulo(a_.altivec_i16, b_.altivec_i16); + #elif defined(SIMDE_VECTOR_SUBSCRIPT_OPS) && defined(SIMDE_CONVERT_VECTOR_) && HEDLEY_HAS_BUILTIN(__builtin_shufflevector) + int32_t SIMDE_VECTOR(32) a32, b32, p32; + SIMDE_CONVERT_VECTOR_(a32, a_.i16); + SIMDE_CONVERT_VECTOR_(b32, b_.i16); + p32 = a32 * b32; + r_.i32 = + __builtin_shufflevector(p32, p32, 0, 2, 4, 6) + + __builtin_shufflevector(p32, p32, 1, 3, 5, 7); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_) / sizeof(r_.i16[0])) ; i += 2) { + r_.i32[i / 2] = (a_.i16[i] * b_.i16[i]) + (a_.i16[i + 1] * b_.i16[i + 1]); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_i32x4_dot_i16x8(a, b) simde_wasm_i32x4_dot_i16x8((a), (b)) +#endif + +/* ceil */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_ceil (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_ceil(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128 = _mm_round_ps(a_.sse_m128, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + #elif defined(SIMDE_X86_SSE2_NATIVE) + /* https://github.com/WebAssembly/simd/pull/232 */ + const __m128i input_as_i32 = _mm_cvttps_epi32(a_.sse_m128); + const __m128i i32_min = _mm_set1_epi32(INT32_MIN); + const __m128i input_is_out_of_range = _mm_or_si128(_mm_cmpeq_epi32(input_as_i32, i32_min), i32_min); + const __m128 truncated = + _mm_or_ps( + _mm_andnot_ps( + _mm_castsi128_ps(input_is_out_of_range), + _mm_cvtepi32_ps(input_as_i32) + ), + _mm_castsi128_ps( + _mm_castps_si128( + _mm_and_ps( + _mm_castsi128_ps(input_is_out_of_range), + a_.sse_m128 + ) + ) + ) + ); + + const __m128 trunc_is_ge_input = + _mm_or_ps( + _mm_cmple_ps(a_.sse_m128, truncated), + _mm_castsi128_ps(i32_min) + ); + r_.sse_m128 = + _mm_or_ps( + _mm_andnot_ps( + trunc_is_ge_input, + _mm_add_ps(truncated, _mm_set1_ps(SIMDE_FLOAT32_C(1.0))) + ), + _mm_and_ps(trunc_is_ge_input, truncated) + ); + #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) + r_.neon_f32 = vrndpq_f32(a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) + r_.altivec_f32 = vec_ceil(a_.altivec_f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_ceilf(a_.f32[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_ceil(a) simde_wasm_f32x4_ceil((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_ceil (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_ceil(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128d = _mm_round_pd(a_.sse_m128d, _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vrndpq_f64(a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_ceil(a_.altivec_f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_ceil(a_.f64[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_ceil(a) simde_wasm_f64x2_ceil((a)) +#endif + +/* floor */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_floor (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_floor(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE4_1_NATIVE) + r_.sse_m128 = _mm_floor_ps(a_.sse_m128); + #elif defined(SIMDE_X86_SSE2_NATIVE) + const __m128i vint_min = _mm_set1_epi32(INT_MIN); + const __m128i input_as_int = _mm_cvttps_epi32(a_.sse_m128); + const __m128 input_truncated = _mm_cvtepi32_ps(input_as_int); + const __m128i oor_all_or_neg = _mm_or_si128(_mm_cmpeq_epi32(input_as_int, vint_min), vint_min); + const __m128 tmp = + _mm_castsi128_ps( + _mm_or_si128( + _mm_andnot_si128( + oor_all_or_neg, + _mm_castps_si128(input_truncated) + ), + _mm_and_si128( + oor_all_or_neg, + _mm_castps_si128(a_.sse_m128) + ) + ) + ); + r_.sse_m128 = + _mm_sub_ps( + tmp, + _mm_and_ps( + _mm_cmplt_ps( + a_.sse_m128, + tmp + ), + _mm_set1_ps(SIMDE_FLOAT32_C(1.0)) + ) + ); + #elif defined(SIMDE_ARM_NEON_A32V8_NATIVE) + r_.neon_f32 = vrndmq_f32(a_.neon_f32); + #elif defined(SIMDE_ARM_NEON_A32V7_NATIVE) + const int32x4_t input_as_int = vcvtq_s32_f32(a_.f32); + const float32x4_t input_truncated = vcvtq_f32_s32(input_as_int); + const float32x4_t tmp = + vbslq_f32( + vbicq_u32( + vcagtq_f32( + vreinterpretq_f32_u32(vdupq_n_u32(UINT32_C(0x4B000000))), + a_.f32 + ), + vdupq_n_u32(UINT32_C(0x80000000)) + ), + input_truncated, + a_.f32); + r_.neon_f32 = + vsubq_f32( + tmp, + vreinterpretq_f32_u32( + vandq_u32( + vcgtq_f32( + tmp, + a_.f32 + ), + vdupq_n_u32(UINT32_C(0x3F800000)) + ) + ) + ); + #elif defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) || defined(SIMDE_ZARCH_ZVECTOR_14_NATIVE) + r_.altivec_f32 = vec_floor(a_.altivec_f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_floorf(a_.f32[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_floor(a) simde_wasm_f32x4_floor((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_floor (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_floor(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_floor(a_.f64[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_floor(a) simde_wasm_f64x2_floor((a)) +#endif + +/* trunc */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_trunc (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_trunc(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_truncf(a_.f32[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_trunc(a) simde_wasm_f32x4_trunc((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_trunc (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_trunc(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_trunc(a_.f64[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_trunc(a) simde_wasm_f64x2_trunc((a)) +#endif + +/* nearest */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_nearest (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_nearest(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_nearbyintf(a_.f32[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_nearest(a) simde_wasm_f32x4_nearest((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_nearest (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_nearest(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_nearbyint(a_.f64[i])); + } + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_nearest(a) simde_wasm_f64x2_nearest((a)) +#endif + +/* sqrt */ + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f32x4_sqrt (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f32x4_sqrt(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE_NATIVE) + r_.sse_m128 = _mm_sqrt_ps(a_.sse_m128); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f32 = vsqrtq_f32(a_.neon_f32); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f32 = vec_sqrt(a_.altivec_f32); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f32) / sizeof(r_.f32[0])) ; i++) { + r_.f32[i] = simde_math_quietf(simde_math_sqrtf(a_.f32[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f32x4_sqrt(a) simde_wasm_f32x4_sqrt((a)) +#endif + +SIMDE_FUNCTION_ATTRIBUTES +simde_v128_t +simde_wasm_f64x2_sqrt (simde_v128_t a) { + #if defined(SIMDE_WASM_SIMD128_NATIVE) + return wasm_f64x2_sqrt(a); + #else + simde_v128_private + a_ = simde_v128_to_private(a), + r_; + + #if defined(SIMDE_X86_SSE2_NATIVE) + r_.sse_m128d = _mm_sqrt_pd(a_.sse_m128d); + #elif defined(SIMDE_ARM_NEON_A64V8_NATIVE) + r_.neon_f64 = vsqrtq_f64(a_.neon_f64); + #elif defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) + r_.altivec_f64 = vec_sqrt(a_.altivec_f64); + #else + SIMDE_VECTORIZE + for (size_t i = 0 ; i < (sizeof(r_.f64) / sizeof(r_.f64[0])) ; i++) { + r_.f64[i] = simde_math_quiet(simde_math_sqrt(a_.f64[i])); + } + #endif + + return simde_v128_from_private(r_); + #endif +} +#if defined(SIMDE_WASM_SIMD128_ENABLE_NATIVE_ALIASES) + #define wasm_f64x2_sqrt(a) simde_wasm_f64x2_sqrt((a)) +#endif + +SIMDE_END_DECLS_ + +HEDLEY_DIAGNOSTIC_POP + +#endif /* !defined(SIMDE_WASM_SIMD128_H) */ +/* :: End simde/wasm/simd128.h :: */ diff --git a/apps/mobile/modules/t3-highlights/Vendor/wasm2c/LICENSE b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/LICENSE new file mode 100644 index 000000000000..d64569567334 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl-tableops.inc b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl-tableops.inc new file mode 100644 index 000000000000..323a32f8db10 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl-tableops.inc @@ -0,0 +1,90 @@ +/* + * Copyright 2018 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// This file is used as a template to generate code for table operations for +// funcref or externref. For this, the file must be included after defining +// either WASM_RT_TABLE_OPS_FUNCREF or WASM_RT_TABLE_OPS_EXTERNREF + +#if defined(WASM_RT_TABLE_OPS_FUNCREF) + \ + defined(WASM_RT_TABLE_OPS_EXTERNREF) + \ + defined(WASM_RT_TABLE_OPS_EXNREF) > \ + 1 +#error \ + "Expected only one of { WASM_RT_TABLE_OPS_FUNCREF, WASM_RT_TABLE_OPS_EXTERNREF, WASM_RT_TABLE_OPS_EXNREF } to be defined" +#elif defined(WASM_RT_TABLE_OPS_FUNCREF) + \ + defined(WASM_RT_TABLE_OPS_EXTERNREF) + \ + defined(WASM_RT_TABLE_OPS_EXNREF) < \ + 1 +#error \ + "Expected one of { WASM_RT_TABLE_OPS_FUNCREF, WASM_RT_TABLE_OPS_EXTERNREF, WASM_RT_TABLE_OPS_EXNREF } to be defined" +#endif + +#if defined(WASM_RT_TABLE_OPS_FUNCREF) +#define WASM_RT_TABLE_TYPE wasm_rt_funcref_table_t +#define WASM_RT_TABLE_ELEMENT_TYPE wasm_rt_funcref_t +#define WASM_RT_TABLE_APINAME(name) name##_funcref_table +#elif defined(WASM_RT_TABLE_OPS_EXTERNREF) +#define WASM_RT_TABLE_TYPE wasm_rt_externref_table_t +#define WASM_RT_TABLE_ELEMENT_TYPE wasm_rt_externref_t +#define WASM_RT_TABLE_APINAME(name) name##_externref_table +#elif defined(WASM_RT_TABLE_OPS_EXNREF) +#define WASM_RT_TABLE_TYPE wasm_rt_exnref_table_t +#define WASM_RT_TABLE_ELEMENT_TYPE wasm_rt_exnref_t +#define WASM_RT_TABLE_APINAME(name) name##_exnref_table +#endif + +void WASM_RT_TABLE_APINAME(wasm_rt_allocate)(WASM_RT_TABLE_TYPE* table, + uint32_t elements, + uint32_t max_elements) { + table->size = elements; + table->max_size = max_elements; + table->data = calloc(table->size, sizeof(WASM_RT_TABLE_ELEMENT_TYPE)); +} + +void WASM_RT_TABLE_APINAME(wasm_rt_free)(WASM_RT_TABLE_TYPE* table) { + free(table->data); +} + +uint32_t WASM_RT_TABLE_APINAME(wasm_rt_grow)(WASM_RT_TABLE_TYPE* table, + uint32_t delta, + WASM_RT_TABLE_ELEMENT_TYPE init) { + uint32_t old_elems = table->size; + uint64_t new_elems = (uint64_t)table->size + delta; + if (new_elems == 0) { + return 0; + } + if ((new_elems < old_elems) || (new_elems > table->max_size)) { + return (uint32_t)-1; + } + if (new_elems > SIZE_MAX / sizeof(WASM_RT_TABLE_ELEMENT_TYPE)) { + return (uint32_t)-1; + } + void* new_data = + realloc(table->data, new_elems * sizeof(WASM_RT_TABLE_ELEMENT_TYPE)); + if (!new_data) { + return (uint32_t)-1; + } + table->data = new_data; + table->size = new_elems; + for (uint32_t i = old_elems; i < new_elems; i++) { + table->data[i] = init; + } + return old_elems; +} + +#undef WASM_RT_TABLE_APINAME +#undef WASM_RT_TABLE_ELEMENT_TYPE +#undef WASM_RT_TABLE_TYPE diff --git a/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl.c b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl.c new file mode 100644 index 000000000000..0cf0723a95de --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl.c @@ -0,0 +1,401 @@ +/* + * Copyright 2018 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "wasm-rt-impl.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#if WASM_RT_INSTALL_SIGNAL_HANDLER && !defined(_WIN32) +#include +#include +#endif + +#ifdef _WIN32 +#include +#else +#include +#endif + +#ifndef NDEBUG +#define DEBUG_PRINTF(...) fprintf(stderr, __VA_ARGS__); +#else +#define DEBUG_PRINTF(...) +#endif + +#if WASM_RT_INSTALL_SIGNAL_HANDLER +static bool g_signal_handler_installed = false; +#ifdef _WIN32 +static void* g_sig_handler_handle = 0; +#endif +#endif + +#if WASM_RT_USE_SEGUE +bool wasm_rt_fsgsbase_inst_supported = false; +#ifdef __linux__ +#include +#ifdef __GLIBC__ +#include +#endif +#include // For ARCH_SET_GS +#include // For SYS_arch_prctl +#include // For syscall +#ifndef HWCAP2_FSGSBASE +#define HWCAP2_FSGSBASE (1 << 1) +#endif +#elif defined(__FreeBSD__) +#include // For amd64_set_gsbase etc. +#endif +#endif + +#if WASM_RT_SEGUE_FREE_SEGMENT +WASM_RT_THREAD_LOCAL void* wasm_rt_last_segment_val = NULL; +#endif + +#if WASM_RT_STACK_DEPTH_COUNT +WASM_RT_THREAD_LOCAL uint32_t wasm_rt_call_stack_depth; +WASM_RT_THREAD_LOCAL uint32_t wasm_rt_saved_call_stack_depth; +#elif WASM_RT_STACK_EXHAUSTION_HANDLER +static WASM_RT_THREAD_LOCAL void* g_alt_stack = NULL; +#endif + +#ifndef WASM_RT_TRAP_HANDLER +WASM_RT_THREAD_LOCAL wasm_rt_jmp_buf g_wasm_rt_jmp_buf; +#endif + +#ifdef WASM_RT_TRAP_HANDLER +extern void WASM_RT_TRAP_HANDLER(wasm_rt_trap_t code); +#endif + +void wasm_rt_trap(wasm_rt_trap_t code) { + assert(code != WASM_RT_TRAP_NONE); +#if WASM_RT_STACK_DEPTH_COUNT + wasm_rt_call_stack_depth = wasm_rt_saved_call_stack_depth; +#endif + +#ifdef WASM_RT_TRAP_HANDLER + WASM_RT_TRAP_HANDLER(code); + wasm_rt_unreachable(); +#else + WASM_RT_LONGJMP(g_wasm_rt_jmp_buf, code); +#endif +} + +#ifdef _WIN32 + +#if WASM_RT_INSTALL_SIGNAL_HANDLER + +static LONG os_signal_handler(PEXCEPTION_POINTERS info) { + if (info->ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION) { + wasm_rt_trap(WASM_RT_TRAP_OOB); + } else if (info->ExceptionRecord->ExceptionCode == EXCEPTION_STACK_OVERFLOW) { + wasm_rt_trap(WASM_RT_TRAP_EXHAUSTION); + } + return EXCEPTION_CONTINUE_SEARCH; +} + +static void os_install_signal_handler(void) { + g_sig_handler_handle = + AddVectoredExceptionHandler(1 /* CALL_FIRST */, os_signal_handler); +} + +static void os_cleanup_signal_handler(void) { + RemoveVectoredExceptionHandler(g_sig_handler_handle); +} + +#endif + +#else + +#if WASM_RT_INSTALL_SIGNAL_HANDLER +static void os_signal_handler(int sig, siginfo_t* si, void* unused) { + if (si->si_code == SEGV_ACCERR) { + wasm_rt_trap(WASM_RT_TRAP_OOB); + } else { + wasm_rt_trap(WASM_RT_TRAP_EXHAUSTION); + } +} + +static void os_install_signal_handler(void) { + struct sigaction sa; + memset(&sa, '\0', sizeof(sa)); + sa.sa_flags = SA_SIGINFO; +#if WASM_RT_STACK_EXHAUSTION_HANDLER + sa.sa_flags |= SA_ONSTACK; +#endif + sigemptyset(&sa.sa_mask); + sa.sa_sigaction = os_signal_handler; + + /* Install SIGSEGV and SIGBUS handlers, since macOS seems to use SIGBUS. */ + if (sigaction(SIGSEGV, &sa, NULL) != 0 || sigaction(SIGBUS, &sa, NULL) != 0) { + perror("sigaction failed"); + abort(); + } +} + +static void os_cleanup_signal_handler(void) { + /* Undo what was done in os_install_signal_handler */ + struct sigaction sa; + memset(&sa, '\0', sizeof(sa)); + sa.sa_handler = SIG_DFL; + if (sigaction(SIGSEGV, &sa, NULL) != 0 || sigaction(SIGBUS, &sa, NULL)) { + perror("sigaction failed"); + abort(); + } +} +#endif + +#if WASM_RT_STACK_EXHAUSTION_HANDLER +static bool os_has_altstack_installed() { + /* check for altstack already in place */ + stack_t ss; + if (sigaltstack(NULL, &ss) != 0) { + perror("os_has_altstack_installed: sigaltstack failed"); + abort(); + } + + return !(ss.ss_flags & SS_DISABLE); +} + +/* These routines set up an altstack to handle SIGSEGV from stack overflow. */ +static void os_allocate_and_install_altstack(void) { + /* verify altstack not already allocated */ + assert(!g_alt_stack && + "wasm-rt error: tried to re-allocate thread-local alternate stack"); + + /* We could check and warn if an altstack is already installed, but some + * sanitizers install their own altstack, so this warning would fire + * spuriously and break the test outputs. */ + + /* allocate altstack */ + g_alt_stack = malloc(SIGSTKSZ); + if (g_alt_stack == NULL) { + perror("malloc failed"); + abort(); + } + + /* install altstack */ + stack_t ss; + ss.ss_sp = g_alt_stack; + ss.ss_flags = 0; + ss.ss_size = SIGSTKSZ; + if (sigaltstack(&ss, NULL) != 0) { + perror("os_allocate_and_install_altstack: sigaltstack failed"); + abort(); + } +} + +static void os_disable_and_deallocate_altstack(void) { + /* in debug build, verify altstack allocated */ + assert(g_alt_stack && + "wasm-rt error: thread-local alternate stack not allocated"); + + /* verify altstack was still in place */ + stack_t ss; + if (sigaltstack(NULL, &ss) != 0) { + perror("os_disable_and_deallocate_altstack: sigaltstack failed"); + abort(); + } + + if ((!g_alt_stack) || (ss.ss_flags & SS_DISABLE) || + (ss.ss_sp != g_alt_stack) || (ss.ss_size != SIGSTKSZ)) { + DEBUG_PRINTF( + "wasm-rt warning: alternate stack was modified unexpectedly\n"); + return; + } + + assert(!(ss.ss_flags & SS_ONSTACK) && + "attempt to deallocate altstack while in use"); + + /* disable and free */ + ss.ss_flags = SS_DISABLE; + if (sigaltstack(&ss, NULL) != 0) { + perror("sigaltstack disable failed"); + abort(); + } + assert(!os_has_altstack_installed()); + free(g_alt_stack); + g_alt_stack = NULL; +} +#endif + +#endif + +#if WASM_RT_USE_SEGUE && defined(__FreeBSD__) +static void call_cpuid(uint64_t* rax, + uint64_t* rbx, + uint64_t* rcx, + uint64_t* rdx) { + __asm__ volatile( + "cpuid" + : "=a"(*rax), "=b"(*rbx), "=c"(*rcx), "=d"(*rdx) // output operands + : "a"(*rax), "c"(*rcx) // input operands + ); +} +#endif + +void wasm_rt_init(void) { + wasm_rt_init_thread(); +#if WASM_RT_INSTALL_SIGNAL_HANDLER + if (!g_signal_handler_installed) { + g_signal_handler_installed = true; + os_install_signal_handler(); + } +#endif + +#if WASM_RT_USE_SEGUE +#if defined(__linux__) && defined(__GLIBC__) && __GLIBC__ >= 2 && \ + __GLIBC_MINOR__ >= 18 + // Check for support for userspace wrgsbase instructions + unsigned long val = getauxval(AT_HWCAP2); + wasm_rt_fsgsbase_inst_supported = val & HWCAP2_FSGSBASE; +#elif defined(__FreeBSD__) + // FreeBSD enables fsgsbase on the newer kernels if the hardware supports it. + // We just need to check if the hardware supports it by querying the correct + // cpuid leaf. + uint64_t rax, rbx, rcx, rdx; + rax = 0; + call_cpuid(&rax, &rbx, &rcx, &rdx); + + if (rax > 7) { + rax = 7; + rcx = 0; + call_cpuid(&rax, &rbx, &rcx, &rdx); + if (rbx & 0x1) { + wasm_rt_fsgsbase_inst_supported = true; + } + } +#endif +#endif + + assert(wasm_rt_is_initialized()); +} + +bool wasm_rt_is_initialized(void) { +#if WASM_RT_STACK_EXHAUSTION_HANDLER + if (!os_has_altstack_installed()) { + return false; + } +#endif +#if WASM_RT_INSTALL_SIGNAL_HANDLER + return g_signal_handler_installed; +#else + return true; +#endif +} + +void wasm_rt_free(void) { + assert(wasm_rt_is_initialized()); +#if WASM_RT_INSTALL_SIGNAL_HANDLER + os_cleanup_signal_handler(); + g_signal_handler_installed = false; +#endif + wasm_rt_free_thread(); +} + +void wasm_rt_init_thread(void) { +#if WASM_RT_STACK_EXHAUSTION_HANDLER + os_allocate_and_install_altstack(); +#endif +} + +void wasm_rt_free_thread(void) { +#if WASM_RT_STACK_EXHAUSTION_HANDLER + os_disable_and_deallocate_altstack(); +#endif +} + +#if WASM_RT_USE_SEGUE +void wasm_rt_syscall_set_segue_base(void* base) { + int error_code = 0; +#ifdef __linux__ + error_code = syscall(SYS_arch_prctl, ARCH_SET_GS, base); +#elif defined(__FreeBSD__) + error_code = amd64_set_gsbase(base); +#else +#error "Unknown platform" +#endif + if (error_code != 0) { + perror("wasm_rt_syscall_set_segue_base error"); + abort(); + } +} +void* wasm_rt_syscall_get_segue_base() { + void* base; + int error_code = 0; +#ifdef __linux__ + error_code = syscall(SYS_arch_prctl, ARCH_GET_GS, &base); +#elif defined(__FreeBSD__) + error_code = amd64_get_gsbase(&base); +#else +#error "Unknown platform" +#endif + if (error_code != 0) { + perror("wasm_rt_syscall_get_segue_base error"); + abort(); + } + return base; +} +#endif + +// Include table operations for funcref +#define WASM_RT_TABLE_OPS_FUNCREF +#include "wasm-rt-impl-tableops.inc" +#undef WASM_RT_TABLE_OPS_FUNCREF + +// Include table operations for externref +#define WASM_RT_TABLE_OPS_EXTERNREF +#include "wasm-rt-impl-tableops.inc" +#undef WASM_RT_TABLE_OPS_EXTERNREF + +const char* wasm_rt_strerror(wasm_rt_trap_t trap) { + switch (trap) { + case WASM_RT_TRAP_NONE: + return "No error"; + case WASM_RT_TRAP_OOB: +#if WASM_RT_MERGED_OOB_AND_EXHAUSTION_TRAPS + return "Out-of-bounds access in linear memory or a table, or call stack " + "exhausted"; +#else + return "Out-of-bounds access in linear memory or a table"; + case WASM_RT_TRAP_EXHAUSTION: + return "Call stack exhausted"; +#endif + case WASM_RT_TRAP_INT_OVERFLOW: + return "Integer overflow on divide or truncation"; + case WASM_RT_TRAP_DIV_BY_ZERO: + return "Integer divide by zero"; + case WASM_RT_TRAP_INVALID_CONVERSION: + return "Conversion from NaN to integer"; + case WASM_RT_TRAP_UNREACHABLE: + return "Unreachable instruction executed"; + case WASM_RT_TRAP_CALL_INDIRECT: + return "Invalid call_indirect or return_call_indirect"; + case WASM_RT_TRAP_UNCAUGHT_EXCEPTION: + return "Uncaught exception"; + case WASM_RT_TRAP_UNALIGNED: + return "Unaligned atomic memory access"; + case WASM_RT_TRAP_NULL_REF: + return "Null reference"; + } + return "invalid trap code"; +} diff --git a/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl.h b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl.h new file mode 100644 index 000000000000..ed46b097211c --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-impl.h @@ -0,0 +1,68 @@ +/* + * Copyright 2018 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WASM_RT_IMPL_H_ +#define WASM_RT_IMPL_H_ + +#include "wasm-rt.h" + +#ifdef _WIN32 +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef WASM_RT_TRAP_HANDLER +/** A setjmp buffer used for handling traps. */ +extern WASM_RT_THREAD_LOCAL wasm_rt_jmp_buf g_wasm_rt_jmp_buf; +#endif + +#if WASM_RT_STACK_DEPTH_COUNT +/** Saved call stack depth that will be restored in case a trap occurs. */ +extern WASM_RT_THREAD_LOCAL uint32_t wasm_rt_saved_call_stack_depth; +#define WASM_RT_SAVE_STACK_DEPTH() \ + wasm_rt_saved_call_stack_depth = wasm_rt_call_stack_depth +#else +#define WASM_RT_SAVE_STACK_DEPTH() (void)0 +#endif + +/** + * Convenience macro to use before calling a wasm function. On first execution + * it will return `WASM_RT_TRAP_NONE` (i.e. 0). If the function traps, it will + * jump back and return the trap that occurred. + * + * ``` + * wasm_rt_trap_t code = wasm_rt_impl_try(); + * if (code != 0) { + * printf("A trap occurred with code: %d\n", code); + * ... + * } + * + * // Call the potentially-trapping function. + * my_wasm_func(); + * ``` + */ +#define wasm_rt_impl_try() \ + (WASM_RT_SAVE_STACK_DEPTH(), wasm_rt_set_unwind_target(&g_wasm_rt_jmp_buf), \ + WASM_RT_SETJMP(g_wasm_rt_jmp_buf)) + +#ifdef __cplusplus +} +#endif + +#endif /* WASM_RT_IMPL_H_ */ diff --git a/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-mem-impl-helper.inc b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-mem-impl-helper.inc new file mode 100644 index 000000000000..4e209ee55e0b --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-mem-impl-helper.inc @@ -0,0 +1,207 @@ +/* + * Copyright 2018 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// This file is used as a template to generate code for regular memories or for +// shared memories. For this, the file must be included after defining either +// WASM_RT_MEM_OPS or WASM_RT_MEM_OPS_SHARED. + +#if defined(WASM_RT_MEM_OPS) && defined(WASM_RT_MEM_OPS_SHARED) +#error \ + "Expected only one of { WASM_RT_MEM_OPS, WASM_RT_MEM_OPS_SHARED } to be defined" +#elif !defined(WASM_RT_MEM_OPS) && !defined(WASM_RT_MEM_OPS_SHARED) +#error \ + "Expected one of { WASM_RT_MEM_OPS, WASM_RT_MEM_OPS_SHARED } to be defined" +#endif + +// Shared memory operations are defined only if we have C11 +#if defined(WASM_RT_MEM_OPS) || \ + (defined(WASM_RT_MEM_OPS_SHARED) && defined(WASM_RT_C11_AVAILABLE)) + +#ifdef WASM_RT_MEM_OPS + +// Memory operations on wasm_rt_memory_t +#define MEMORY_TYPE wasm_rt_memory_t +#define MEMORY_API_NAME(name) name +#define MEMORY_CELL_TYPE uint8_t* +#define MEMORY_LOCK_VAR_INIT(name) +#define MEMORY_LOCK_AQUIRE(name) +#define MEMORY_LOCK_RELEASE(name) + +#else + +// Memory operations on wasm_rt_shared_memory_t +#define MEMORY_TYPE wasm_rt_shared_memory_t +#define MEMORY_API_NAME(name) name##_shared +#define MEMORY_CELL_TYPE _Atomic volatile uint8_t* + +#if WASM_RT_USE_CRITICALSECTION +#define MEMORY_LOCK_VAR_INIT(name) WIN_MEMORY_LOCK_VAR_INIT(name) +#define MEMORY_LOCK_AQUIRE(name) WIN_MEMORY_LOCK_AQUIRE(name) +#define MEMORY_LOCK_RELEASE(name) WIN_MEMORY_LOCK_RELEASE(name) +#elif WASM_RT_USE_PTHREADS +#define MEMORY_LOCK_VAR_INIT(name) PTHREAD_MEMORY_LOCK_VAR_INIT(name) +#define MEMORY_LOCK_AQUIRE(name) PTHREAD_MEMORY_LOCK_AQUIRE(name) +#define MEMORY_LOCK_RELEASE(name) PTHREAD_MEMORY_LOCK_RELEASE(name) +#endif + +#endif + +bool MEMORY_API_NAME(wasm_rt_memory_is_default32)(const MEMORY_TYPE* memory) { + return memory->page_size == WASM_DEFAULT_PAGE_SIZE && !memory->is64; +} + +void MEMORY_API_NAME(wasm_rt_allocate_memory)(MEMORY_TYPE* memory, + uint64_t initial_pages, + uint64_t max_pages, + bool is64, + uint32_t page_size) { + uint64_t byte_length; + if (u64_mult_overflow(initial_pages, page_size, &byte_length)) { + abort(); + } + memory->size = byte_length; + memory->pages = initial_pages; + memory->max_pages = max_pages; + memory->is64 = is64; + memory->page_size = page_size; + MEMORY_LOCK_VAR_INIT(memory->mem_lock); + +#if WASM_RT_USE_MMAP + if (MEMORY_API_NAME(wasm_rt_memory_is_default32)(memory)) { + const uint64_t mmap_size = + get_alloc_size_for_mmap_default32(memory->max_pages); + uint8_t* addr = os_mmap(mmap_size); + if (!addr) { + os_print_last_error("os_mmap failed."); + abort(); + } + uint8_t* data_end = addr + mmap_size; +#if !WABT_BIG_ENDIAN + int ret = os_mprotect(addr, byte_length); +#else + int ret = os_mprotect(data_end - byte_length, byte_length); +#endif + if (ret != 0) { + os_print_last_error("os_mprotect failed."); + abort(); + } + memory->data = (MEMORY_CELL_TYPE)addr; + memory->data_end = (MEMORY_CELL_TYPE)data_end; + return; + } +#endif + + memory->data = (MEMORY_CELL_TYPE)calloc(byte_length, 1); + if (byte_length != 0 && !memory->data) { + abort(); + } + memory->data_end = memory->data + byte_length; +} + +// Returns 0 on success +static int MEMORY_API_NAME(expand_data_allocation)(MEMORY_TYPE* memory, + uint64_t old_size, + uint64_t new_size, + uint64_t delta_size) { +#if WASM_RT_USE_MMAP + if (MEMORY_API_NAME(wasm_rt_memory_is_default32)(memory)) { +#if !WABT_BIG_ENDIAN + return os_mprotect((void*)(memory->data + old_size), delta_size); +#else + return os_mprotect((void*)(memory->data_end - old_size - delta_size), + delta_size); +#endif + } +#endif + + uint8_t* new_data = realloc((void*)memory->data, new_size); + if (new_data == NULL) { + return -1; + } +#if !WABT_BIG_ENDIAN + memset((void*)(new_data + old_size), 0, delta_size); +#else + memmove((void*)(new_data + new_size - old_size), (void*)new_data, old_size); + memset((void*)new_data, 0, delta_size); +#endif + + memory->data = (MEMORY_CELL_TYPE)new_data; + memory->data_end = memory->data + new_size; + return 0; +} + +static uint64_t MEMORY_API_NAME(grow_memory_impl)(MEMORY_TYPE* memory, + uint64_t delta) { + uint64_t old_pages = memory->pages; + uint64_t new_pages = memory->pages + delta; + if (delta == 0) { + return old_pages; + } + if (new_pages < old_pages || new_pages > memory->max_pages) { + return (uint64_t)-1; + } + + uint64_t old_size, new_size, delta_size; + if (u64_mult_overflow(old_pages, memory->page_size, &old_size) || + u64_mult_overflow(new_pages, memory->page_size, &new_size) || + u64_mult_overflow(delta, memory->page_size, &delta_size)) { + return (uint64_t)-1; + } + + int err = MEMORY_API_NAME(expand_data_allocation)(memory, old_size, new_size, + delta_size); + if (err != 0) { + return (uint64_t)-1; + } + + memory->pages = new_pages; + memory->size = new_size; + return old_pages; +} + +uint64_t MEMORY_API_NAME(wasm_rt_grow_memory)(MEMORY_TYPE* memory, + uint64_t delta) { + MEMORY_LOCK_AQUIRE(memory->mem_lock); + uint64_t ret = MEMORY_API_NAME(grow_memory_impl)(memory, delta); + MEMORY_LOCK_RELEASE(memory->mem_lock); +#ifdef WASM_RT_GROW_FAILED_HANDLER + if (ret == (uint64_t)-1) { + WASM_RT_GROW_FAILED_HANDLER(); + } +#endif + return ret; +} + +void MEMORY_API_NAME(wasm_rt_free_memory)(MEMORY_TYPE* memory) { +#if WASM_RT_USE_MMAP + if (MEMORY_API_NAME(wasm_rt_memory_is_default32)(memory)) { + const uint64_t mmap_size = + get_alloc_size_for_mmap_default32(memory->max_pages); + os_munmap((void*)memory->data, mmap_size); // ignore error + return; + } +#endif + free((void*)memory->data); +} + +#undef MEMORY_LOCK_RELEASE +#undef MEMORY_LOCK_AQUIRE +#undef MEMORY_LOCK_VAR_INIT +#undef MEMORY_CELL_TYPE +#undef MEMORY_API_NAME +#undef MEMORY_TYPE + +#endif diff --git a/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-mem-impl.c b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-mem-impl.c new file mode 100644 index 000000000000..2a335dd72acd --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt-mem-impl.c @@ -0,0 +1,171 @@ +/* + * Copyright 2018 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "wasm-rt-impl.h" + +#include +#include + +#ifdef _WIN32 +#include +#else +#include +#endif + +#ifdef WASM_RT_GROW_FAILED_HANDLER +extern void WASM_RT_GROW_FAILED_HANDLER(); +#endif + +#define PTHREAD_MEMORY_LOCK_VAR_INIT(name) \ + if (pthread_mutex_init(&(name), NULL) != 0) { \ + fprintf(stderr, "Lock init failed\n"); \ + abort(); \ + } +#define PTHREAD_MEMORY_LOCK_AQUIRE(name) \ + if (pthread_mutex_lock(&(name)) != 0) { \ + fprintf(stderr, "Lock acquire failed\n"); \ + abort(); \ + } +#define PTHREAD_MEMORY_LOCK_RELEASE(name) \ + if (pthread_mutex_unlock(&(name)) != 0) { \ + fprintf(stderr, "Lock release failed\n"); \ + abort(); \ + } + +#define WIN_MEMORY_LOCK_VAR_INIT(name) InitializeCriticalSection(&(name)) +#define WIN_MEMORY_LOCK_AQUIRE(name) EnterCriticalSection(&(name)) +#define WIN_MEMORY_LOCK_RELEASE(name) LeaveCriticalSection(&(name)) + +#if WASM_RT_USE_MMAP + +#ifdef _WIN32 +static void* os_mmap(size_t size) { + void* ret = VirtualAlloc(NULL, size, MEM_RESERVE, PAGE_NOACCESS); + return ret; +} + +static int os_munmap(void* addr, size_t size) { + // Windows can only unmap the whole mapping + (void)size; /* unused */ + BOOL succeeded = VirtualFree(addr, 0, MEM_RELEASE); + return succeeded ? 0 : -1; +} + +static int os_mprotect(void* addr, size_t size) { + if (size == 0) { + return 0; + } + void* ret = VirtualAlloc(addr, size, MEM_COMMIT, PAGE_READWRITE); + if (ret == addr) { + return 0; + } + VirtualFree(addr, 0, MEM_RELEASE); + return -1; +} + +static void os_print_last_error(const char* msg) { + DWORD errorMessageID = GetLastError(); + if (errorMessageID != 0) { + LPSTR messageBuffer = 0; + // The api creates the buffer that holds the message + size_t size = FormatMessageA( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPSTR)&messageBuffer, 0, NULL); + (void)size; + printf("%s. %s\n", msg, messageBuffer); + LocalFree(messageBuffer); + } else { + printf("%s. No error code.\n", msg); + } +} + +#else /* !_WIN32 */ +static void* os_mmap(size_t size) { + int map_prot = PROT_NONE; + int map_flags = MAP_ANONYMOUS | MAP_PRIVATE; + uint8_t* addr = mmap(NULL, size, map_prot, map_flags, -1, 0); + if (addr == MAP_FAILED) + return NULL; + return addr; +} + +static int os_munmap(void* addr, size_t size) { + return munmap(addr, size); +} + +static int os_mprotect(void* addr, size_t size) { + if (size == 0) { + return 0; + } + return mprotect(addr, size, PROT_READ | PROT_WRITE); +} + +static void os_print_last_error(const char* msg) { + perror(msg); +} + +#endif /* _WIN32 */ + +static uint64_t get_alloc_size_for_mmap_default32(uint64_t max_pages) { +#if WASM_RT_MEMCHECK_GUARD_PAGES + /* Reserve 8GiB. */ + const uint64_t max_size = 0x200000000ul; + return max_size; +#else + if (max_pages != 0) { + const uint64_t max_size = max_pages * WASM_DEFAULT_PAGE_SIZE; + return max_size; + } + + /* Reserve 4GiB. */ + const uint64_t max_size = 0x100000000ul; + return max_size; +#endif +} + +#endif /* WASM_RT_USE_MMAP */ + +static bool u64_mult_overflow(uint64_t a, uint64_t b, uint64_t* result) { + uint64_t x = a * b; + *result = x; + if (a != 0 && x / a != b) { + // overflow + return true; + } + return false; +} + +// Include operations for memory +#define WASM_RT_MEM_OPS +#include "wasm-rt-mem-impl-helper.inc" +#undef WASM_RT_MEM_OPS + +// Include operations for shared memory +#define WASM_RT_MEM_OPS_SHARED +#include "wasm-rt-mem-impl-helper.inc" +#undef WASM_RT_MEM_OPS_SHARED + +#undef C11_MEMORY_LOCK_VAR_INIT +#undef C11_MEMORY_LOCK_AQUIRE +#undef C11_MEMORY_LOCK_RELEASE +#undef PTHREAD_MEMORY_LOCK_VAR_INIT +#undef PTHREAD_MEMORY_LOCK_AQUIRE +#undef PTHREAD_MEMORY_LOCK_RELEASE +#undef WIN_MEMORY_LOCK_VAR_INIT +#undef WIN_MEMORY_LOCK_AQUIRE +#undef WIN_MEMORY_LOCK_RELEASE diff --git a/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt.h b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt.h new file mode 100644 index 000000000000..537c32234551 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/Vendor/wasm2c/wasm-rt.h @@ -0,0 +1,739 @@ +/* + * Copyright 2018 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WASM_RT_H_ +#define WASM_RT_H_ + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __has_builtin +#define __has_builtin(x) 0 /** Compatibility with non-clang compilers. */ +#endif + +#if __has_builtin(__builtin_expect) +#define UNLIKELY(x) __builtin_expect(!!(x), 0) +#define LIKELY(x) __builtin_expect(!!(x), 1) +#else +#define UNLIKELY(x) (x) +#define LIKELY(x) (x) +#endif + +#if __has_builtin(__builtin_memcpy) +#define wasm_rt_memcpy __builtin_memcpy +#else +#define wasm_rt_memcpy memcpy +#endif + +#if __has_builtin(__builtin_unreachable) +#define wasm_rt_unreachable __builtin_unreachable +#else +#define wasm_rt_unreachable abort +#endif + +#ifdef __STDC_VERSION__ +#if __STDC_VERSION__ >= 201112L +#define WASM_RT_C11_AVAILABLE +#endif +#endif + +/** + * Many devices don't implement the C11 threads.h. We use CriticalSection APIs + * for Windows and pthreads on other platforms where threads are not available. + */ +#ifdef WASM_RT_C11_AVAILABLE + +#if defined(_WIN32) +#include +#define WASM_RT_MUTEX CRITICAL_SECTION +#define WASM_RT_USE_CRITICALSECTION 1 +#else +#include +#define WASM_RT_MUTEX pthread_mutex_t +#define WASM_RT_USE_PTHREADS 1 +#endif + +#endif + +#ifdef WASM_RT_C11_AVAILABLE +#define WASM_RT_THREAD_LOCAL _Thread_local +#elif defined(_MSC_VER) +#define WASM_RT_THREAD_LOCAL __declspec(thread) +#elif (defined(__GNUC__) || defined(__clang__)) && !defined(__APPLE__) +// Disabled on Apple systems due to sporadic test failures. +#define WASM_RT_THREAD_LOCAL __thread +#else +#define WASM_RT_THREAD_LOCAL +#endif + +/** + * If enabled, perform additional sanity checks in the generated wasm2c code and + * wasm2c runtime. This is useful to enable on debug builds. + */ +#ifndef WASM_RT_SANITY_CHECKS +#define WASM_RT_SANITY_CHECKS 0 +#endif + +/** + * Backward compatibility: Convert the previously exposed + * WASM_RT_MEMCHECK_SIGNAL_HANDLER macro to the ALLOCATION and CHECK macros that + * are now used. + */ +#if defined(WASM_RT_MEMCHECK_SIGNAL_HANDLER) + +#if WASM_RT_MEMCHECK_SIGNAL_HANDLER +#define WASM_RT_USE_MMAP 1 +#define WASM_RT_MEMCHECK_GUARD_PAGES 1 +#else +#define WASM_RT_USE_MMAP 0 +#define WASM_RT_MEMCHECK_BOUNDS_CHECK 1 +#endif + +#warning \ + "WASM_RT_MEMCHECK_SIGNAL_HANDLER has been deprecated in favor of WASM_RT_USE_MMAP and WASM_RT_MEMORY_CHECK_* macros" +#endif + +/** + * Specify if we use OR mmap/mprotect (+ Windows equivalents) OR malloc/realloc + * for the Wasm memory allocation and growth. mmap/mprotect guarantees memory + * will grow without being moved, while malloc ensures the virtual memory is + * consumed only as needed, but may relocate the memory to handle memory + * fragmentation. + * + * This defaults to malloc on 32-bit platforms or if memory64 support is needed. + * It defaults to mmap on 64-bit platforms assuming memory64 support is not + * needed (so we can use the guard based range checks below). + */ +#ifndef WASM_RT_USE_MMAP +#if UINTPTR_MAX > 0xffffffff +#define WASM_RT_USE_MMAP 1 +#else +#define WASM_RT_USE_MMAP 0 +#endif +#endif + +/** + * This macro, if defined, allows the embedder to permit elimination of unused + * memory loads. Note, this a non conformant configuration, i.e., this does not + * respect Wasm's specification, as Wasm requires all loads (even the eliminated + * loads to trap), whereas this configuration could eliminate an out-of-bound + * load, and thus allow the Wasm module to not trap. Use with caution. + */ +#ifndef WASM_RT_NONCONFORMING_ALLOW_OOB_READ_ELIMINATION +#define WASM_RT_NONCONFORMING_ALLOW_OOB_READ_ELIMINATION 0 +#endif + +/** + * Set the range checking strategy for Wasm memories. + * + * GUARD_PAGES: memory accesses rely on unmapped pages/guard pages to trap + * out-of-bound accesses. + * + * BOUNDS_CHECK: memory accesses are checked with explicit bounds checks. + * + * This defaults to GUARD_PAGES as this is the fastest option, iff the + * requirements of GUARD_PAGES --- 64-bit platforms, MMAP allocation strategy, + * no 64-bit memories, and platforms with a supported FORCE_READ_STRATEGY + * described below --- are met. This falls back to BOUNDS otherwise. + * + * FORCE_READ_STRATEGY --- either the compiler should be a gcc/clang-like + * compiler or the embedder must permit a non-conforming setting (allow dead + * read elimination from linear memory) + */ +#if UINTPTR_MAX > 0xffffffff && WASM_RT_USE_MMAP && \ + (WASM_RT_NONCONFORMING_ALLOW_OOB_READ_ELIMINATION || defined(__GNUC__)) +#define WASM_RT_GUARD_PAGES_SUPPORTED 1 +#else +#define WASM_RT_GUARD_PAGES_SUPPORTED 0 +#endif + +/** Specify defaults for memory checks if unspecified */ +#if !defined(WASM_RT_MEMCHECK_GUARD_PAGES) && \ + !defined(WASM_RT_MEMCHECK_BOUNDS_CHECK) +#if WASM_RT_GUARD_PAGES_SUPPORTED +#define WASM_RT_MEMCHECK_GUARD_PAGES 1 +#else +#define WASM_RT_MEMCHECK_BOUNDS_CHECK 1 +#endif +#endif + +/** Ensure the macros are defined */ +#ifndef WASM_RT_MEMCHECK_GUARD_PAGES +#define WASM_RT_MEMCHECK_GUARD_PAGES 0 +#endif +#ifndef WASM_RT_MEMCHECK_BOUNDS_CHECK +#define WASM_RT_MEMCHECK_BOUNDS_CHECK 0 +#endif + +/** Sanity check the use of guard pages */ +#if WASM_RT_MEMCHECK_GUARD_PAGES && !WASM_RT_GUARD_PAGES_SUPPORTED +#error \ + "WASM_RT_MEMCHECK_GUARD_PAGES not supported on this platform/configuration" +#endif + +#if WASM_RT_MEMCHECK_GUARD_PAGES && WASM_RT_MEMCHECK_BOUNDS_CHECK +#error \ + "Cannot use both WASM_RT_MEMCHECK_GUARD_PAGES and WASM_RT_MEMCHECK_BOUNDS_CHECK" + +#elif !WASM_RT_MEMCHECK_GUARD_PAGES && !WASM_RT_MEMCHECK_BOUNDS_CHECK +#error \ + "Must choose at least one from WASM_RT_MEMCHECK_GUARD_PAGES and WASM_RT_MEMCHECK_BOUNDS_CHECK" +#endif + +/** + * Some configurations above require the Wasm runtime to install a signal + * handler. However, this can be explicitly disallowed by the host using + * WASM_RT_SKIP_SIGNAL_RECOVERY. In this case, when the wasm code encounters an + * OOB access, it may either trap or abort. + */ +#ifndef WASM_RT_SKIP_SIGNAL_RECOVERY +#define WASM_RT_SKIP_SIGNAL_RECOVERY 0 +#endif + +#if WASM_RT_MEMCHECK_GUARD_PAGES && !WASM_RT_SKIP_SIGNAL_RECOVERY +#define WASM_RT_INSTALL_SIGNAL_HANDLER 1 +#else +#define WASM_RT_INSTALL_SIGNAL_HANDLER 0 +#endif + +/** + * This macro, if defined to 1 (i.e., allows the "segue" optimization), allows + * Wasm2c to use segment registers to speedup access to the linear heap. Note + * that even if allowed in this way, the segment registers would only be used if + * Wasm2c output is compiled for a suitable architecture and OS and the produces + * C file is compiled by supported compilers. The extact restrictions are listed + * in detail in src/template/wasm2c.declarations.c + */ +#ifndef WASM_RT_ALLOW_SEGUE +#define WASM_RT_ALLOW_SEGUE 0 +#endif + +/** + * The segue optimization restores x86 segments to their old values when exiting + * wasm2c code. If WASM_RT_SEGUE_FREE_SEGMENT is defined, wasm2c assumes it has + * exclusive use of the segment and optimizes performance in two ways. First, it + * does not restore the "old" value of the segment during exits. Second, wasm2c + * only sets the segment register if the value has changed since the last time + * it was set. + */ +#ifndef WASM_RT_SEGUE_FREE_SEGMENT +#define WASM_RT_SEGUE_FREE_SEGMENT 0 +#endif + +#ifndef WASM_RT_USE_SEGUE +// Memory functions can use the segue optimization if allowed. The segue +// optimization uses x86 segments to point to a linear memory. We use this +// optimization when: +// +// (1) Segue is allowed using WASM_RT_ALLOW_SEGUE +// (2) on x86_64 without WABT_BIG_ENDIAN enabled +// (3) the compiler supports: intrinsics for (rd|wr)gsbase, "address namespaces" +// for accessing pointers, and supports memcpy on pointers with custom +// "address namespaces". GCC does not support the memcpy requirement, so +// this leaves only clang (version 9 or later) for now. +// (4) The OS provides a way to query if (rd|wr)gsbase is allowed by the kernel +// or the implementation has to use a syscall for this. +// (5) The OS doesn't replace the segment register on context switch which +// eliminates windows for now +// +// While more OS can be supported in the future, we only support linux for now +#if WASM_RT_ALLOW_SEGUE && !WABT_BIG_ENDIAN && \ + (defined(__x86_64__) || defined(_M_X64)) && __clang__ && \ + (__clang_major__ >= 9) && __has_builtin(__builtin_ia32_wrgsbase64) && \ + !defined(_WIN32) && !defined(__ANDROID__) && \ + (defined(__linux__) || defined(__FreeBSD__)) +#define WASM_RT_USE_SEGUE 1 +#else +#define WASM_RT_USE_SEGUE 0 +#endif +#endif + +/** + * This macro, if defined, allows the embedder to disable all stack exhaustion + * checks. This a non conformant configuration, i.e., this does not respect + * Wasm's specification, and may compromise security. Use with caution. + */ +#ifndef WASM_RT_NONCONFORMING_UNCHECKED_STACK_EXHAUSTION +#define WASM_RT_NONCONFORMING_UNCHECKED_STACK_EXHAUSTION 0 +#endif + +/** + * We need to detect and trap stack overflows. If we use a signal handler on + * POSIX systems, this can detect call stack overflows. On windows, or platforms + * without a signal handler, we use stack depth counting. The s390x big endian + * platform additionally seems to have issues with stack guard pages, so we play + * it safe and use stack counting on big endian platforms. + */ +#if !defined(WASM_RT_STACK_DEPTH_COUNT) && \ + !defined(WASM_RT_STACK_EXHAUSTION_HANDLER) && \ + !WASM_RT_NONCONFORMING_UNCHECKED_STACK_EXHAUSTION + +#if WASM_RT_INSTALL_SIGNAL_HANDLER && !defined(_WIN32) && !WABT_BIG_ENDIAN +#define WASM_RT_STACK_EXHAUSTION_HANDLER 1 +#else +#define WASM_RT_STACK_DEPTH_COUNT 1 +#endif + +#endif + +/** Ensure the stack macros are defined */ +#ifndef WASM_RT_STACK_DEPTH_COUNT +#define WASM_RT_STACK_DEPTH_COUNT 0 +#endif +#ifndef WASM_RT_STACK_EXHAUSTION_HANDLER +#define WASM_RT_STACK_EXHAUSTION_HANDLER 0 +#endif + +#if WASM_RT_NONCONFORMING_UNCHECKED_STACK_EXHAUSTION + +#if (WASM_RT_STACK_EXHAUSTION_HANDLER + WASM_RT_STACK_DEPTH_COUNT) != 0 +#error \ + "Cannot specify WASM_RT_NONCONFORMING_UNCHECKED_STACK_EXHAUSTION along with WASM_RT_STACK_EXHAUSTION_HANDLER or WASM_RT_STACK_DEPTH_COUNT" +#endif + +#else + +#if (WASM_RT_STACK_EXHAUSTION_HANDLER + WASM_RT_STACK_DEPTH_COUNT) > 1 +#error \ + "Cannot specify multiple options from WASM_RT_STACK_EXHAUSTION_HANDLER , WASM_RT_STACK_DEPTH_COUNT" +#elif (WASM_RT_STACK_EXHAUSTION_HANDLER + WASM_RT_STACK_DEPTH_COUNT) == 0 +#error \ + "Must specify one of WASM_RT_STACK_EXHAUSTION_HANDLER , WASM_RT_STACK_DEPTH_COUNT" +#endif + +#endif + +#if WASM_RT_STACK_EXHAUSTION_HANDLER && !WASM_RT_INSTALL_SIGNAL_HANDLER +#error \ + "WASM_RT_STACK_EXHAUSTION_HANDLER can only be used if WASM_RT_INSTALL_SIGNAL_HANDLER is enabled" +#endif + +#if WASM_RT_STACK_DEPTH_COUNT +/** + * When the signal handler cannot be used to detect stack overflows, stack depth + * is limited explicitly. The maximum stack depth before trapping can be + * configured by defining this symbol before including wasm-rt when building the + * generated c files, for example: + * + * ``` + * cc -c -DWASM_RT_MAX_CALL_STACK_DEPTH=100 my_module.c -o my_module.o + * ``` + */ +#ifndef WASM_RT_MAX_CALL_STACK_DEPTH +#define WASM_RT_MAX_CALL_STACK_DEPTH 500 +#endif + +/** Current call stack depth. */ +extern WASM_RT_THREAD_LOCAL uint32_t wasm_rt_call_stack_depth; + +#endif + +#if WASM_RT_USE_SEGUE +/** + * The segue optimization uses x86 segments to point to a linear memory. If + * used, the runtime must query whether it can use the fast userspace wrgsbase + * instructions or whether it must invoke syscalls to set the segment base, + * depending on the supported CPU features. The result of this query is saved in + * this variable. + */ +extern bool wasm_rt_fsgsbase_inst_supported; +/** + * If fast userspace wrgsbase instructions don't exist, the runtime most provide + * a function that invokes the OS' underlying syscall to set the segment base. + */ +void wasm_rt_syscall_set_segue_base(void* base); +/** + * If fast userspace rdgsbase instructions don't exist, the runtime most provide + * a function that invokes the OS' underlying syscall to get the segment base. + */ +void* wasm_rt_syscall_get_segue_base(); +/** + * If WASM_RT_SEGUE_FREE_SEGMENT is defined, we must only set the segment + * register if it was changed since the last time it was set. The last value set + * on the segment register is stored in this variable. + */ +#if WASM_RT_SEGUE_FREE_SEGMENT +extern WASM_RT_THREAD_LOCAL void* wasm_rt_last_segment_val; +#endif +#endif + +#if defined(_MSC_VER) +#define WASM_RT_NO_RETURN __declspec(noreturn) +#else +#define WASM_RT_NO_RETURN __attribute__((noreturn)) +#endif + +#if defined(__APPLE__) && WASM_RT_STACK_EXHAUSTION_HANDLER +#define WASM_RT_MERGED_OOB_AND_EXHAUSTION_TRAPS 1 +#else +#define WASM_RT_MERGED_OOB_AND_EXHAUSTION_TRAPS 0 +#endif + +/** Reason a trap occurred. Provide this to `wasm_rt_trap`. */ +typedef enum { + WASM_RT_TRAP_NONE, /** No error. */ + WASM_RT_TRAP_OOB, /** Out-of-bounds access in linear memory or a table. */ + WASM_RT_TRAP_INT_OVERFLOW, /** Integer overflow on divide or truncation. */ + WASM_RT_TRAP_DIV_BY_ZERO, /** Integer divide by zero. */ + WASM_RT_TRAP_INVALID_CONVERSION, /** Conversion from NaN to integer. */ + WASM_RT_TRAP_UNREACHABLE, /** Unreachable instruction executed. */ + WASM_RT_TRAP_CALL_INDIRECT, /** Invalid call_indirect, for any reason. */ + WASM_RT_TRAP_NULL_REF, /** Null reference. */ + WASM_RT_TRAP_UNCAUGHT_EXCEPTION, /** Exception thrown and not caught. */ + WASM_RT_TRAP_UNALIGNED, /** Unaligned atomic instruction executed. */ +#if WASM_RT_MERGED_OOB_AND_EXHAUSTION_TRAPS + WASM_RT_TRAP_EXHAUSTION = WASM_RT_TRAP_OOB, +#else + WASM_RT_TRAP_EXHAUSTION, /** Call stack exhausted. */ +#endif +} wasm_rt_trap_t; + +/** Value types. Used to define function signatures. */ +typedef enum { + WASM_RT_I32, + WASM_RT_I64, + WASM_RT_F32, + WASM_RT_F64, + WASM_RT_V128, + WASM_RT_FUNCREF, + WASM_RT_EXTERNREF, + WASM_RT_EXNREF, +} wasm_rt_type_t; + +/** + * A generic function pointer type, both for Wasm functions (`code`) + * and host functions (`hostcode`). All function pointers are stored + * in this canonical form, but must be cast to their proper signature + * to call. + */ +typedef void (*wasm_rt_function_ptr_t)(void); + +/** + * A pointer to a "tail-callee" function, called by a tail-call + * trampoline or by another tail-callee function. (The definition uses a + * single-member struct to allow a recursive definition.) + */ +typedef struct wasm_rt_tailcallee_t { + void (*fn)(void** instance_ptr, + void* tail_call_stack, + struct wasm_rt_tailcallee_t* next); +} wasm_rt_tailcallee_t; + +/** + * The type of a function (an arbitrary number of param and result types). + * This is represented as an opaque 256-bit ID. + */ +typedef const char* wasm_rt_func_type_t; + +/** + * A function instance (the runtime representation of a function). + * These can be stored in tables of type funcref, or used as values. + */ +typedef struct { + /** The function's type. */ + wasm_rt_func_type_t func_type; + /** + * The function. The embedder must know the actual C signature of the function + * and cast to it before calling. + */ + wasm_rt_function_ptr_t func; + /** An alternate version of the function to be used when tail-called. */ + wasm_rt_tailcallee_t func_tailcallee; + /** + * A function instance is a closure of the function over an instance + * of the originating module. The module_instance element will be passed into + * the function at runtime. + */ + void* module_instance; +} wasm_rt_funcref_t; + +/** Default (null) value of a funcref */ +#define wasm_rt_funcref_null_value \ + ((wasm_rt_funcref_t){NULL, NULL, {NULL}, NULL}) + +/** The type of an external reference (opaque to WebAssembly). */ +typedef void* wasm_rt_externref_t; + +/** Default (null) value of an externref */ +#define wasm_rt_externref_null_value ((wasm_rt_externref_t){NULL}) + +/** A Memory object. */ +typedef struct { + /** The linear memory data, with a byte length of `size`. */ + uint8_t* data; + /** The location after the the reserved space for the linear memory data. */ + uint8_t* data_end; + /** The page size for this Memory object + (always 64 KiB without the custom-page-sizes feature) */ + uint32_t page_size; + /** The current page count for this Memory object. */ + uint64_t pages; + /** The maximum page count for this Memory object. */ + uint64_t max_pages; + /** The current size of the linear memory, in bytes. */ + uint64_t size; + /** Is this memory indexed by u64 (as opposed to default u32) */ + bool is64; +} wasm_rt_memory_t; + +#ifdef WASM_RT_C11_AVAILABLE +/** A shared Memory object. */ +typedef struct { + /** + * The linear memory data, with a byte length of `size`. The memory is marked + * atomic as it is shared and may have to be accessed with different memory + * orders --- sequential when being accessed atomically, relaxed otherwise. + * Unfortunately, the C standard does not state what happens if there are + * overlaps in two memory accesses which have a memory order, e.g., an + * atomic32 being read from the same location an atomic64 is read. One way to + * prevent optimizations from assuming non-overlapping behavior as typically + * done in C is to mark the memory as volatile. Thus the memory is atomic and + * volatile. + */ + _Atomic volatile uint8_t* data; + /** The location one byte after the reserved space for the linear memory data. + * This includes any reserved pages that are not yet allocated. */ + _Atomic volatile uint8_t* data_end; + /** The page size for this Memory object + (always 64 KiB without the custom-page-sizes feature) */ + uint32_t page_size; + /** The current page count for this Memory object. */ + uint64_t pages; + /* The maximum page count for this Memory object. */ + uint64_t max_pages; + /** The current size of the linear memory, in bytes. */ + uint64_t size; + /** Is this memory indexed by u64 (as opposed to default u32) */ + bool is64; + /** Lock used to ensure operations such as memory grow are threadsafe */ + WASM_RT_MUTEX mem_lock; +} wasm_rt_shared_memory_t; +#endif + +/** A Table of type funcref. */ +typedef struct { + /** The table element data, with an element count of `size`. */ + wasm_rt_funcref_t* data; + /** + * The maximum element count of this Table object. If there is no maximum, + * `max_size` is 0xffffffffu (i.e. UINT32_MAX). + */ + uint32_t max_size; + /** The current element count of the table. */ + uint32_t size; +} wasm_rt_funcref_table_t; + +/** A Table of type externref. */ +typedef struct { + /** The table element data, with an element count of `size`. */ + wasm_rt_externref_t* data; + /** + * The maximum element count of this Table object. If there is no maximum, + * `max_size` is 0xffffffffu (i.e. UINT32_MAX). + */ + uint32_t max_size; + /** The current element count of the table. */ + uint32_t size; +} wasm_rt_externref_table_t; + +/** Initialize the runtime. */ +void wasm_rt_init(void); + +/** Is the runtime initialized? */ +bool wasm_rt_is_initialized(void); + +/** Free the runtime's state. */ +void wasm_rt_free(void); + +/* + * Initialize the multithreaded runtime for a given thread. Must be + * called by each thread (other than the one that called wasm_rt_init) + * before initializing a Wasm module or calling an exported + * function. + */ +void wasm_rt_init_thread(void); + +/* + * Free the individual thread's state. + */ +void wasm_rt_free_thread(void); + +/** A hardened jmp_buf that allows checking for initialization before use */ +typedef struct { + /** Is the jmp buf intialized? */ + bool initialized; + /** jmp_buf contents */ + jmp_buf buffer; +} wasm_rt_jmp_buf; + +#ifndef _WIN32 +#define WASM_RT_SETJMP_TRAP_SETBUF(buf) sigsetjmp(buf, 1) + +/** + * On macOS XNU, there is a bug where nested `sigsetjmp` and `siglongjmp` + * across threads that have an allocated alternate signal stack (`SS_ONSTACK`) + * will erroneously cause the kernel to preserve the `SS_ONSTACK` flag in the + * thread state + * + * See: https://github.com/WebAssembly/wabt/issues/2654 + * See: https://github.com/golang/go/issues/44501 + */ +#define WASM_RT_SETJMP_EXN_SETBUF(buf) sigsetjmp(buf, 0) +#else +#define WASM_RT_SETJMP_TRAP_SETBUF(buf) setjmp(buf) +#define WASM_RT_SETJMP_EXN_SETBUF(buf) setjmp(buf) +#endif + +#define WASM_RT_SETJMP(buf) \ + ((buf).initialized = true, WASM_RT_SETJMP_TRAP_SETBUF((buf).buffer)) +#define WASM_RT_SETJMP_EXN(buf) \ + ((buf).initialized = true, WASM_RT_SETJMP_EXN_SETBUF((buf).buffer)) + +#ifndef _WIN32 +#define WASM_RT_LONGJMP_UNCHECKED(buf, val) siglongjmp(buf, val) +#else +#define WASM_RT_LONGJMP_UNCHECKED(buf, val) longjmp(buf, val) +#endif + +#define WASM_RT_LONGJMP(buf, val) \ + /** Abort on failure as this may be called in the trap handler */ \ + if (!((buf).initialized)) \ + abort(); \ + (buf).initialized = false; \ + WASM_RT_LONGJMP_UNCHECKED((buf).buffer, val) + +/** + * Stop execution immediately and jump back to the call to `wasm_rt_impl_try`. + * The result of `wasm_rt_impl_try` will be the provided trap reason. + * + * This is typically called by the generated code, and not the embedder. + */ +WASM_RT_NO_RETURN void wasm_rt_trap(wasm_rt_trap_t); + +/** Return a human readable error string based on a trap type. */ +const char* wasm_rt_strerror(wasm_rt_trap_t trap); + +#define wasm_rt_try(target) WASM_RT_SETJMP_EXN(target) + +/** WebAssembly's default page size (64 KiB) */ +#define WASM_DEFAULT_PAGE_SIZE 65536 + +/** + * Initialize a Memory object with an initial page size of `initial_pages` and + * a maximum page size of `max_pages`, indexed with an i32 or i64. + * + * ``` + * wasm_rt_memory_t my_memory; + * // 1 initial page (65536 bytes), and a maximum of 2 pages, + * // indexed with an i32 + * wasm_rt_allocate_memory(&my_memory, 1, 2, false, WASM_DEFAULT_PAGE_SIZE); + * ``` + */ +void wasm_rt_allocate_memory(wasm_rt_memory_t*, + uint64_t initial_pages, + uint64_t max_pages, + bool is64, + uint32_t page_size); + +/** + * Grow a Memory object by `pages`, and return the previous page count. If + * this new page count is greater than the maximum page count, the grow fails + * and 0xffffffffu (UINT32_MAX) is returned instead. + * + * ``` + * wasm_rt_memory_t my_memory; + * ... + * // Grow memory by 10 pages. + * uint32_t old_page_size = wasm_rt_grow_memory(&my_memory, 10); + * if (old_page_size == UINT32_MAX) { + * // Failed to grow memory. + * } + * ``` + */ +uint64_t wasm_rt_grow_memory(wasm_rt_memory_t*, uint64_t pages); + +/** Free a Memory object. */ +void wasm_rt_free_memory(wasm_rt_memory_t*); + +#ifdef WASM_RT_C11_AVAILABLE +/** Shared memory version of wasm_rt_allocate_memory */ +void wasm_rt_allocate_memory_shared(wasm_rt_shared_memory_t*, + uint64_t initial_pages, + uint64_t max_pages, + bool is64, + uint32_t page_size); + +/** Shared memory version of wasm_rt_grow_memory */ +uint64_t wasm_rt_grow_memory_shared(wasm_rt_shared_memory_t*, uint64_t pages); + +/** Shared memory version of wasm_rt_free_memory */ +void wasm_rt_free_memory_shared(wasm_rt_shared_memory_t*); +#endif + +/** + * Initialize a funcref Table object with an element count of `elements` and a + * maximum size of `max_elements`. + * + * ``` + * wasm_rt_funcref_table_t my_table; + * // 5 elements and a maximum of 10 elements. + * wasm_rt_allocate_funcref_table(&my_table, 5, 10); + * ``` + */ +void wasm_rt_allocate_funcref_table(wasm_rt_funcref_table_t*, + uint32_t elements, + uint32_t max_elements); + +/** Free a funcref Table object. */ +void wasm_rt_free_funcref_table(wasm_rt_funcref_table_t*); + +/** + * Initialize an externref Table object with an element count + * of `elements` and a maximum size of `max_elements`. + * Usage as per wasm_rt_allocate_funcref_table. + */ +void wasm_rt_allocate_externref_table(wasm_rt_externref_table_t*, + uint32_t elements, + uint32_t max_elements); + +/** Free an externref Table object. */ +void wasm_rt_free_externref_table(wasm_rt_externref_table_t*); + +/** + * Grow a Table object by `delta` elements (giving the new elements the value + * `init`), and return the previous element count. If this new element count is + * greater than the maximum element count, the grow fails and 0xffffffffu + * (UINT32_MAX) is returned instead. + */ +uint32_t wasm_rt_grow_funcref_table(wasm_rt_funcref_table_t*, + uint32_t delta, + wasm_rt_funcref_t init); +uint32_t wasm_rt_grow_externref_table(wasm_rt_externref_table_t*, + uint32_t delta, + wasm_rt_externref_t init); + +#ifdef __cplusplus +} +#endif + +#endif /* WASM_RT_H_ */ diff --git a/apps/mobile/modules/t3-highlights/android/.gitignore b/apps/mobile/modules/t3-highlights/android/.gitignore new file mode 100644 index 000000000000..3166b90b0423 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/android/.gitignore @@ -0,0 +1 @@ +.cxx/ diff --git a/apps/mobile/modules/t3-highlights/android/build.gradle b/apps/mobile/modules/t3-highlights/android/build.gradle new file mode 100644 index 000000000000..58f05125d3f5 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/android/build.gradle @@ -0,0 +1,34 @@ +apply plugin: 'com.android.library' +apply plugin: 'org.jetbrains.kotlin.android' + +group = 'com.t3tools.highlights' +version = '0.0.0' + +android { + namespace 'expo.modules.t3highlights' + ndkVersion rootProject.ext.ndkVersion + compileSdk rootProject.ext.compileSdkVersion + + defaultConfig { + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + + def requestedArchitectures = project.findProperty('reactNativeArchitectures') + if (requestedArchitectures) { + ndk { + abiFilters(*requestedArchitectures.split(',')) + } + } + } + + externalNativeBuild { + cmake { + path 'src/main/cpp/CMakeLists.txt' + version '3.22.1' + } + } +} + +dependencies { + implementation project(':expo-modules-core') +} diff --git a/apps/mobile/modules/t3-highlights/android/src/main/AndroidManifest.xml b/apps/mobile/modules/t3-highlights/android/src/main/AndroidManifest.xml new file mode 100644 index 000000000000..94cbbcfc396a --- /dev/null +++ b/apps/mobile/modules/t3-highlights/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/apps/mobile/modules/t3-highlights/android/src/main/cpp/CMakeLists.txt b/apps/mobile/modules/t3-highlights/android/src/main/cpp/CMakeLists.txt new file mode 100644 index 000000000000..297ac3d2cb26 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/android/src/main/cpp/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.22.1) + +project(t3highlights LANGUAGES C) + +set(T3_HIGHLIGHTS_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../../../..") + +add_library( + t3highlights SHARED + t3_highlights_jni.c + "${T3_HIGHLIGHTS_ROOT}/cpp/t3_highlights.c" + "${T3_HIGHLIGHTS_ROOT}/Vendor/highlights/highlights.c" + "${T3_HIGHLIGHTS_ROOT}/Vendor/wasm2c/wasm-rt-impl.c" + "${T3_HIGHLIGHTS_ROOT}/Vendor/wasm2c/wasm-rt-mem-impl.c" +) + +target_include_directories( + t3highlights + PRIVATE "${T3_HIGHLIGHTS_ROOT}/cpp" "${T3_HIGHLIGHTS_ROOT}/Vendor" + "${T3_HIGHLIGHTS_ROOT}/Vendor/highlights" "${T3_HIGHLIGHTS_ROOT}/Vendor/wasm2c" +) + +# Plain malloc memory with explicit bounds checks: no guard-page signal +# handlers competing with ART's. +target_compile_definitions( + t3highlights PRIVATE WASM_RT_USE_MMAP=0 WASM_RT_MEMCHECK_BOUNDS_CHECK=1 + WASM_RT_SKIP_SIGNAL_RECOVERY=1 +) + +# The lexers are generated code; keep them fast in debug builds too. +target_compile_options(t3highlights PRIVATE -O2) + +target_link_options( + t3highlights PRIVATE "-Wl,-z,common-page-size=16384" "-Wl,-z,max-page-size=16384" +) diff --git a/apps/mobile/modules/t3-highlights/android/src/main/cpp/t3_highlights_jni.c b/apps/mobile/modules/t3-highlights/android/src/main/cpp/t3_highlights_jni.c new file mode 100644 index 000000000000..2e45d618d22a --- /dev/null +++ b/apps/mobile/modules/t3-highlights/android/src/main/cpp/t3_highlights_jni.c @@ -0,0 +1,41 @@ +#include +#include + +#include "t3_highlights.h" + +// HighlightsNative serializes both calls, so the copy reads the records the +// tokenize call just produced. +static const uint32_t* last_records = NULL; +static int64_t last_count = 0; + +JNIEXPORT jint JNICALL Java_expo_modules_t3highlights_HighlightsNative_nativeTokenize( + JNIEnv* env, jclass clazz, jbyteArray source, jint language) { + (void)clazz; + last_records = NULL; + last_count = 0; + if (language < 0 || language > UINT8_MAX) return -1; + + jsize length = (*env)->GetArrayLength(env, source); + jbyte* bytes = (*env)->GetByteArrayElements(env, source, NULL); + if (bytes == NULL) return -1; + int64_t count = t3_highlights_tokenize((const uint8_t*)bytes, (size_t)length, + (uint8_t)language, &last_records); + (*env)->ReleaseByteArrayElements(env, source, bytes, JNI_ABORT); + + if (count < 0 || count > INT32_MAX / 4) { + last_records = NULL; + return -1; + } + last_count = count; + return (jint)count; +} + +JNIEXPORT void JNICALL Java_expo_modules_t3highlights_HighlightsNative_nativeCopyRecords( + JNIEnv* env, jclass clazz, jobject destination) { + (void)clazz; + void* address = (*env)->GetDirectBufferAddress(env, destination); + jlong capacity = (*env)->GetDirectBufferCapacity(env, destination); + size_t byte_count = (size_t)last_count * sizeof(uint32_t); + if (address == NULL || last_records == NULL || capacity < (jlong)byte_count) return; + memcpy(address, last_records, byte_count); +} diff --git a/apps/mobile/modules/t3-highlights/android/src/main/java/expo/modules/t3highlights/T3HighlightsModule.kt b/apps/mobile/modules/t3-highlights/android/src/main/java/expo/modules/t3highlights/T3HighlightsModule.kt new file mode 100644 index 000000000000..3b5fcaddd0c4 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/android/src/main/java/expo/modules/t3highlights/T3HighlightsModule.kt @@ -0,0 +1,37 @@ +package expo.modules.t3highlights + +import expo.modules.kotlin.jni.ArrayBuffer +import expo.modules.kotlin.modules.Module +import expo.modules.kotlin.modules.ModuleDefinition +import java.nio.ByteBuffer +import java.nio.ByteOrder + +class T3HighlightsModule : Module() { + override fun definition() = ModuleDefinition { + Name("T3Highlights") + + Function("tokenize") { source: String, language: Int -> + HighlightsNative.tokenize(source, language) + } + } +} + +internal object HighlightsNative { + init { + System.loadLibrary("t3highlights") + } + + // The records live in the lexer's memory until its next run. + @Synchronized + fun tokenize(source: String, language: Int): ArrayBuffer? { + val count = nativeTokenize(source.toByteArray(Charsets.UTF_8), language) + if (count < 0) return null + val records = ByteBuffer.allocateDirect(count * Int.SIZE_BYTES).order(ByteOrder.nativeOrder()) + nativeCopyRecords(records) + return ArrayBuffer(records) + } + + @JvmStatic private external fun nativeTokenize(source: ByteArray, language: Int): Int + + @JvmStatic private external fun nativeCopyRecords(destination: ByteBuffer) +} diff --git a/apps/mobile/modules/t3-highlights/cpp/generated/id_ranges.inc b/apps/mobile/modules/t3-highlights/cpp/generated/id_ranges.inc new file mode 100644 index 000000000000..370b0a8f9ead --- /dev/null +++ b/apps/mobile/modules/t3-highlights/cpp/generated/id_ranges.inc @@ -0,0 +1,376 @@ +/* Unicode 17.0 identifier classes. */ +static const uint32_t id_start_ranges[][2] = { + {0x41, 0x5a}, {0x61, 0x7a}, {0xaa, 0xaa}, {0xb5, 0xb5}, + {0xba, 0xba}, {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2c1}, + {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, + {0x370, 0x374}, {0x376, 0x377}, {0x37a, 0x37d}, {0x37f, 0x37f}, + {0x386, 0x386}, {0x388, 0x38a}, {0x38c, 0x38c}, {0x38e, 0x3a1}, + {0x3a3, 0x3f5}, {0x3f7, 0x481}, {0x48a, 0x52f}, {0x531, 0x556}, + {0x559, 0x559}, {0x560, 0x588}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, + {0x620, 0x64a}, {0x66e, 0x66f}, {0x671, 0x6d3}, {0x6d5, 0x6d5}, + {0x6e5, 0x6e6}, {0x6ee, 0x6ef}, {0x6fa, 0x6fc}, {0x6ff, 0x6ff}, + {0x710, 0x710}, {0x712, 0x72f}, {0x74d, 0x7a5}, {0x7b1, 0x7b1}, + {0x7ca, 0x7ea}, {0x7f4, 0x7f5}, {0x7fa, 0x7fa}, {0x800, 0x815}, + {0x81a, 0x81a}, {0x824, 0x824}, {0x828, 0x828}, {0x840, 0x858}, + {0x860, 0x86a}, {0x870, 0x887}, {0x889, 0x88f}, {0x8a0, 0x8c9}, + {0x904, 0x939}, {0x93d, 0x93d}, {0x950, 0x950}, {0x958, 0x961}, + {0x971, 0x980}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, + {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bd, 0x9bd}, + {0x9ce, 0x9ce}, {0x9dc, 0x9dd}, {0x9df, 0x9e1}, {0x9f0, 0x9f1}, + {0x9fc, 0x9fc}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, + {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, + {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa72, 0xa74}, {0xa85, 0xa8d}, + {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab2, 0xab3}, + {0xab5, 0xab9}, {0xabd, 0xabd}, {0xad0, 0xad0}, {0xae0, 0xae1}, + {0xaf9, 0xaf9}, {0xb05, 0xb0c}, {0xb0f, 0xb10}, {0xb13, 0xb28}, + {0xb2a, 0xb30}, {0xb32, 0xb33}, {0xb35, 0xb39}, {0xb3d, 0xb3d}, + {0xb5c, 0xb5d}, {0xb5f, 0xb61}, {0xb71, 0xb71}, {0xb83, 0xb83}, + {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xb99, 0xb9a}, + {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, {0xba3, 0xba4}, {0xba8, 0xbaa}, + {0xbae, 0xbb9}, {0xbd0, 0xbd0}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, + {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc3d}, {0xc58, 0xc5a}, + {0xc5c, 0xc5d}, {0xc60, 0xc61}, {0xc80, 0xc80}, {0xc85, 0xc8c}, + {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, + {0xcbd, 0xcbd}, {0xcdc, 0xcde}, {0xce0, 0xce1}, {0xcf1, 0xcf2}, + {0xd04, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd3d, 0xd3d}, + {0xd4e, 0xd4e}, {0xd54, 0xd56}, {0xd5f, 0xd61}, {0xd7a, 0xd7f}, + {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdbd, 0xdbd}, + {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe32, 0xe33}, {0xe40, 0xe46}, + {0xe81, 0xe82}, {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, + {0xea5, 0xea5}, {0xea7, 0xeb0}, {0xeb2, 0xeb3}, {0xebd, 0xebd}, + {0xec0, 0xec4}, {0xec6, 0xec6}, {0xedc, 0xedf}, {0xf00, 0xf00}, + {0xf40, 0xf47}, {0xf49, 0xf6c}, {0xf88, 0xf8c}, {0x1000, 0x102a}, + {0x103f, 0x103f}, {0x1050, 0x1055}, {0x105a, 0x105d}, {0x1061, 0x1061}, + {0x1065, 0x1066}, {0x106e, 0x1070}, {0x1075, 0x1081}, {0x108e, 0x108e}, + {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, + {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256}, {0x1258, 0x1258}, + {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, + {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, + {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, + {0x1380, 0x138f}, {0x13a0, 0x13f5}, {0x13f8, 0x13fd}, {0x1401, 0x166c}, + {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16ee, 0x16f8}, + {0x1700, 0x1711}, {0x171f, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c}, + {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dc}, + {0x1820, 0x1878}, {0x1880, 0x18a8}, {0x18aa, 0x18aa}, {0x18b0, 0x18f5}, + {0x1900, 0x191e}, {0x1950, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, + {0x19b0, 0x19c9}, {0x1a00, 0x1a16}, {0x1a20, 0x1a54}, {0x1aa7, 0x1aa7}, + {0x1b05, 0x1b33}, {0x1b45, 0x1b4c}, {0x1b83, 0x1ba0}, {0x1bae, 0x1baf}, + {0x1bba, 0x1be5}, {0x1c00, 0x1c23}, {0x1c4d, 0x1c4f}, {0x1c5a, 0x1c7d}, + {0x1c80, 0x1c8a}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, {0x1ce9, 0x1cec}, + {0x1cee, 0x1cf3}, {0x1cf5, 0x1cf6}, {0x1cfa, 0x1cfa}, {0x1d00, 0x1dbf}, + {0x1e00, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, + {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, + {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, + {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, + {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2071, 0x2071}, + {0x207f, 0x207f}, {0x2090, 0x209c}, {0x2102, 0x2102}, {0x2107, 0x2107}, + {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2118, 0x211d}, {0x2124, 0x2124}, + {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x2139}, {0x213c, 0x213f}, + {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2160, 0x2188}, {0x2c00, 0x2ce4}, + {0x2ceb, 0x2cee}, {0x2cf2, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, + {0x2d2d, 0x2d2d}, {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d80, 0x2d96}, + {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, + {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, + {0x3005, 0x3007}, {0x3021, 0x3029}, {0x3031, 0x3035}, {0x3038, 0x303c}, + {0x3041, 0x3096}, {0x309b, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff}, + {0x3105, 0x312f}, {0x3131, 0x318e}, {0x31a0, 0x31bf}, {0x31f0, 0x31ff}, + {0x3400, 0x4dbf}, {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, + {0xa610, 0xa61f}, {0xa62a, 0xa62b}, {0xa640, 0xa66e}, {0xa67f, 0xa69d}, + {0xa6a0, 0xa6ef}, {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa7dc}, + {0xa7f1, 0xa801}, {0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822}, + {0xa840, 0xa873}, {0xa882, 0xa8b3}, {0xa8f2, 0xa8f7}, {0xa8fb, 0xa8fb}, + {0xa8fd, 0xa8fe}, {0xa90a, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c}, + {0xa984, 0xa9b2}, {0xa9cf, 0xa9cf}, {0xa9e0, 0xa9e4}, {0xa9e6, 0xa9ef}, + {0xa9fa, 0xa9fe}, {0xaa00, 0xaa28}, {0xaa40, 0xaa42}, {0xaa44, 0xaa4b}, + {0xaa60, 0xaa76}, {0xaa7a, 0xaa7a}, {0xaa7e, 0xaaaf}, {0xaab1, 0xaab1}, + {0xaab5, 0xaab6}, {0xaab9, 0xaabd}, {0xaac0, 0xaac0}, {0xaac2, 0xaac2}, + {0xaadb, 0xaadd}, {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4}, {0xab01, 0xab06}, + {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, + {0xab30, 0xab5a}, {0xab5c, 0xab69}, {0xab70, 0xabe2}, {0xac00, 0xd7a3}, + {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, + {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb1d}, {0xfb1f, 0xfb28}, + {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, {0xfb40, 0xfb41}, + {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, + {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, + {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xffbe}, {0xffc2, 0xffc7}, + {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, + {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, + {0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10140, 0x10174}, {0x10280, 0x1029c}, + {0x102a0, 0x102d0}, {0x10300, 0x1031f}, {0x1032d, 0x1034a}, {0x10350, 0x10375}, + {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x103d1, 0x103d5}, + {0x10400, 0x1049d}, {0x104b0, 0x104d3}, {0x104d8, 0x104fb}, {0x10500, 0x10527}, + {0x10530, 0x10563}, {0x10570, 0x1057a}, {0x1057c, 0x1058a}, {0x1058c, 0x10592}, + {0x10594, 0x10595}, {0x10597, 0x105a1}, {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, + {0x105bb, 0x105bc}, {0x105c0, 0x105f3}, {0x10600, 0x10736}, {0x10740, 0x10755}, + {0x10760, 0x10767}, {0x10780, 0x10785}, {0x10787, 0x107b0}, {0x107b2, 0x107ba}, + {0x10800, 0x10805}, {0x10808, 0x10808}, {0x1080a, 0x10835}, {0x10837, 0x10838}, + {0x1083c, 0x1083c}, {0x1083f, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089e}, + {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, {0x10900, 0x10915}, {0x10920, 0x10939}, + {0x10940, 0x10959}, {0x10980, 0x109b7}, {0x109be, 0x109bf}, {0x10a00, 0x10a00}, + {0x10a10, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a35}, {0x10a60, 0x10a7c}, + {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae4}, {0x10b00, 0x10b35}, + {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91}, {0x10c00, 0x10c48}, + {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d23}, {0x10d4a, 0x10d65}, + {0x10d6f, 0x10d85}, {0x10e80, 0x10ea9}, {0x10eb0, 0x10eb1}, {0x10ec2, 0x10ec7}, + {0x10f00, 0x10f1c}, {0x10f27, 0x10f27}, {0x10f30, 0x10f45}, {0x10f70, 0x10f81}, + {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11003, 0x11037}, {0x11071, 0x11072}, + {0x11075, 0x11075}, {0x11083, 0x110af}, {0x110d0, 0x110e8}, {0x11103, 0x11126}, + {0x11144, 0x11144}, {0x11147, 0x11147}, {0x11150, 0x11172}, {0x11176, 0x11176}, + {0x11183, 0x111b2}, {0x111c1, 0x111c4}, {0x111da, 0x111da}, {0x111dc, 0x111dc}, + {0x11200, 0x11211}, {0x11213, 0x1122b}, {0x1123f, 0x11240}, {0x11280, 0x11286}, + {0x11288, 0x11288}, {0x1128a, 0x1128d}, {0x1128f, 0x1129d}, {0x1129f, 0x112a8}, + {0x112b0, 0x112de}, {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, + {0x1132a, 0x11330}, {0x11332, 0x11333}, {0x11335, 0x11339}, {0x1133d, 0x1133d}, + {0x11350, 0x11350}, {0x1135d, 0x11361}, {0x11380, 0x11389}, {0x1138b, 0x1138b}, + {0x1138e, 0x1138e}, {0x11390, 0x113b5}, {0x113b7, 0x113b7}, {0x113d1, 0x113d1}, + {0x113d3, 0x113d3}, {0x11400, 0x11434}, {0x11447, 0x1144a}, {0x1145f, 0x11461}, + {0x11480, 0x114af}, {0x114c4, 0x114c5}, {0x114c7, 0x114c7}, {0x11580, 0x115ae}, + {0x115d8, 0x115db}, {0x11600, 0x1162f}, {0x11644, 0x11644}, {0x11680, 0x116aa}, + {0x116b8, 0x116b8}, {0x11700, 0x1171a}, {0x11740, 0x11746}, {0x11800, 0x1182b}, + {0x118a0, 0x118df}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913}, + {0x11915, 0x11916}, {0x11918, 0x1192f}, {0x1193f, 0x1193f}, {0x11941, 0x11941}, + {0x119a0, 0x119a7}, {0x119aa, 0x119d0}, {0x119e1, 0x119e1}, {0x119e3, 0x119e3}, + {0x11a00, 0x11a00}, {0x11a0b, 0x11a32}, {0x11a3a, 0x11a3a}, {0x11a50, 0x11a50}, + {0x11a5c, 0x11a89}, {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11bc0, 0x11be0}, + {0x11c00, 0x11c08}, {0x11c0a, 0x11c2e}, {0x11c40, 0x11c40}, {0x11c72, 0x11c8f}, + {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d30}, {0x11d46, 0x11d46}, + {0x11d60, 0x11d65}, {0x11d67, 0x11d68}, {0x11d6a, 0x11d89}, {0x11d98, 0x11d98}, + {0x11db0, 0x11ddb}, {0x11ee0, 0x11ef2}, {0x11f02, 0x11f02}, {0x11f04, 0x11f10}, + {0x11f12, 0x11f33}, {0x11fb0, 0x11fb0}, {0x12000, 0x12399}, {0x12400, 0x1246e}, + {0x12480, 0x12543}, {0x12f90, 0x12ff0}, {0x13000, 0x1342f}, {0x13441, 0x13446}, + {0x13460, 0x143fa}, {0x14400, 0x14646}, {0x16100, 0x1611d}, {0x16800, 0x16a38}, + {0x16a40, 0x16a5e}, {0x16a70, 0x16abe}, {0x16ad0, 0x16aed}, {0x16b00, 0x16b2f}, + {0x16b40, 0x16b43}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16d40, 0x16d6c}, + {0x16e40, 0x16e7f}, {0x16ea0, 0x16eb8}, {0x16ebb, 0x16ed3}, {0x16f00, 0x16f4a}, + {0x16f50, 0x16f50}, {0x16f93, 0x16f9f}, {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe3}, + {0x16ff2, 0x16ff6}, {0x17000, 0x18cd5}, {0x18cff, 0x18d1e}, {0x18d80, 0x18df2}, + {0x1aff0, 0x1aff3}, {0x1aff5, 0x1affb}, {0x1affd, 0x1affe}, {0x1b000, 0x1b122}, + {0x1b132, 0x1b132}, {0x1b150, 0x1b152}, {0x1b155, 0x1b155}, {0x1b164, 0x1b167}, + {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, + {0x1bc90, 0x1bc99}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, + {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, + {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, + {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, + {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, + {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, + {0x1d716, 0x1d734}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, + {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1df00, 0x1df1e}, + {0x1df25, 0x1df2a}, {0x1e030, 0x1e06d}, {0x1e100, 0x1e12c}, {0x1e137, 0x1e13d}, + {0x1e14e, 0x1e14e}, {0x1e290, 0x1e2ad}, {0x1e2c0, 0x1e2eb}, {0x1e4d0, 0x1e4eb}, + {0x1e5d0, 0x1e5ed}, {0x1e5f0, 0x1e5f0}, {0x1e6c0, 0x1e6de}, {0x1e6e0, 0x1e6e2}, + {0x1e6e4, 0x1e6e5}, {0x1e6e7, 0x1e6ed}, {0x1e6f0, 0x1e6f4}, {0x1e6fe, 0x1e6ff}, + {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb}, {0x1e7ed, 0x1e7ee}, {0x1e7f0, 0x1e7fe}, + {0x1e800, 0x1e8c4}, {0x1e900, 0x1e943}, {0x1e94b, 0x1e94b}, {0x1ee00, 0x1ee03}, + {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, {0x1ee24, 0x1ee24}, {0x1ee27, 0x1ee27}, + {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, {0x1ee3b, 0x1ee3b}, + {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, {0x1ee49, 0x1ee49}, {0x1ee4b, 0x1ee4b}, + {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, {0x1ee57, 0x1ee57}, + {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, {0x1ee5d, 0x1ee5d}, {0x1ee5f, 0x1ee5f}, + {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, + {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee7e, 0x1ee7e}, {0x1ee80, 0x1ee89}, + {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, + {0x20000, 0x2a6df}, {0x2a700, 0x2b81d}, {0x2b820, 0x2cead}, {0x2ceb0, 0x2ebe0}, + {0x2ebf0, 0x2ee5d}, {0x2f800, 0x2fa1d}, {0x30000, 0x3134a}, {0x31350, 0x33479}, +}; +static const uint32_t id_continue_ranges[][2] = { + {0x30, 0x39}, {0x41, 0x5a}, {0x5f, 0x5f}, {0x61, 0x7a}, + {0xaa, 0xaa}, {0xb5, 0xb5}, {0xb7, 0xb7}, {0xba, 0xba}, + {0xc0, 0xd6}, {0xd8, 0xf6}, {0xf8, 0x2c1}, {0x2c6, 0x2d1}, + {0x2e0, 0x2e4}, {0x2ec, 0x2ec}, {0x2ee, 0x2ee}, {0x300, 0x374}, + {0x376, 0x377}, {0x37a, 0x37d}, {0x37f, 0x37f}, {0x386, 0x38a}, + {0x38c, 0x38c}, {0x38e, 0x3a1}, {0x3a3, 0x3f5}, {0x3f7, 0x481}, + {0x483, 0x487}, {0x48a, 0x52f}, {0x531, 0x556}, {0x559, 0x559}, + {0x560, 0x588}, {0x591, 0x5bd}, {0x5bf, 0x5bf}, {0x5c1, 0x5c2}, + {0x5c4, 0x5c5}, {0x5c7, 0x5c7}, {0x5d0, 0x5ea}, {0x5ef, 0x5f2}, + {0x610, 0x61a}, {0x620, 0x669}, {0x66e, 0x6d3}, {0x6d5, 0x6dc}, + {0x6df, 0x6e8}, {0x6ea, 0x6fc}, {0x6ff, 0x6ff}, {0x710, 0x74a}, + {0x74d, 0x7b1}, {0x7c0, 0x7f5}, {0x7fa, 0x7fa}, {0x7fd, 0x7fd}, + {0x800, 0x82d}, {0x840, 0x85b}, {0x860, 0x86a}, {0x870, 0x887}, + {0x889, 0x88f}, {0x897, 0x8e1}, {0x8e3, 0x963}, {0x966, 0x96f}, + {0x971, 0x983}, {0x985, 0x98c}, {0x98f, 0x990}, {0x993, 0x9a8}, + {0x9aa, 0x9b0}, {0x9b2, 0x9b2}, {0x9b6, 0x9b9}, {0x9bc, 0x9c4}, + {0x9c7, 0x9c8}, {0x9cb, 0x9ce}, {0x9d7, 0x9d7}, {0x9dc, 0x9dd}, + {0x9df, 0x9e3}, {0x9e6, 0x9f1}, {0x9fc, 0x9fc}, {0x9fe, 0x9fe}, + {0xa01, 0xa03}, {0xa05, 0xa0a}, {0xa0f, 0xa10}, {0xa13, 0xa28}, + {0xa2a, 0xa30}, {0xa32, 0xa33}, {0xa35, 0xa36}, {0xa38, 0xa39}, + {0xa3c, 0xa3c}, {0xa3e, 0xa42}, {0xa47, 0xa48}, {0xa4b, 0xa4d}, + {0xa51, 0xa51}, {0xa59, 0xa5c}, {0xa5e, 0xa5e}, {0xa66, 0xa75}, + {0xa81, 0xa83}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, + {0xaaa, 0xab0}, {0xab2, 0xab3}, {0xab5, 0xab9}, {0xabc, 0xac5}, + {0xac7, 0xac9}, {0xacb, 0xacd}, {0xad0, 0xad0}, {0xae0, 0xae3}, + {0xae6, 0xaef}, {0xaf9, 0xaff}, {0xb01, 0xb03}, {0xb05, 0xb0c}, + {0xb0f, 0xb10}, {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb32, 0xb33}, + {0xb35, 0xb39}, {0xb3c, 0xb44}, {0xb47, 0xb48}, {0xb4b, 0xb4d}, + {0xb55, 0xb57}, {0xb5c, 0xb5d}, {0xb5f, 0xb63}, {0xb66, 0xb6f}, + {0xb71, 0xb71}, {0xb82, 0xb83}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, + {0xb92, 0xb95}, {0xb99, 0xb9a}, {0xb9c, 0xb9c}, {0xb9e, 0xb9f}, + {0xba3, 0xba4}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xbbe, 0xbc2}, + {0xbc6, 0xbc8}, {0xbca, 0xbcd}, {0xbd0, 0xbd0}, {0xbd7, 0xbd7}, + {0xbe6, 0xbef}, {0xc00, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, + {0xc2a, 0xc39}, {0xc3c, 0xc44}, {0xc46, 0xc48}, {0xc4a, 0xc4d}, + {0xc55, 0xc56}, {0xc58, 0xc5a}, {0xc5c, 0xc5d}, {0xc60, 0xc63}, + {0xc66, 0xc6f}, {0xc80, 0xc83}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, + {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbc, 0xcc4}, + {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xcd5, 0xcd6}, {0xcdc, 0xcde}, + {0xce0, 0xce3}, {0xce6, 0xcef}, {0xcf1, 0xcf3}, {0xd00, 0xd0c}, + {0xd0e, 0xd10}, {0xd12, 0xd44}, {0xd46, 0xd48}, {0xd4a, 0xd4e}, + {0xd54, 0xd57}, {0xd5f, 0xd63}, {0xd66, 0xd6f}, {0xd7a, 0xd7f}, + {0xd81, 0xd83}, {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, + {0xdbd, 0xdbd}, {0xdc0, 0xdc6}, {0xdca, 0xdca}, {0xdcf, 0xdd4}, + {0xdd6, 0xdd6}, {0xdd8, 0xddf}, {0xde6, 0xdef}, {0xdf2, 0xdf3}, + {0xe01, 0xe3a}, {0xe40, 0xe4e}, {0xe50, 0xe59}, {0xe81, 0xe82}, + {0xe84, 0xe84}, {0xe86, 0xe8a}, {0xe8c, 0xea3}, {0xea5, 0xea5}, + {0xea7, 0xebd}, {0xec0, 0xec4}, {0xec6, 0xec6}, {0xec8, 0xece}, + {0xed0, 0xed9}, {0xedc, 0xedf}, {0xf00, 0xf00}, {0xf18, 0xf19}, + {0xf20, 0xf29}, {0xf35, 0xf35}, {0xf37, 0xf37}, {0xf39, 0xf39}, + {0xf3e, 0xf47}, {0xf49, 0xf6c}, {0xf71, 0xf84}, {0xf86, 0xf97}, + {0xf99, 0xfbc}, {0xfc6, 0xfc6}, {0x1000, 0x1049}, {0x1050, 0x109d}, + {0x10a0, 0x10c5}, {0x10c7, 0x10c7}, {0x10cd, 0x10cd}, {0x10d0, 0x10fa}, + {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256}, {0x1258, 0x1258}, + {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, + {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c0, 0x12c0}, {0x12c2, 0x12c5}, + {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a}, + {0x135d, 0x135f}, {0x1369, 0x1371}, {0x1380, 0x138f}, {0x13a0, 0x13f5}, + {0x13f8, 0x13fd}, {0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, + {0x16a0, 0x16ea}, {0x16ee, 0x16f8}, {0x1700, 0x1715}, {0x171f, 0x1734}, + {0x1740, 0x1753}, {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1772, 0x1773}, + {0x1780, 0x17d3}, {0x17d7, 0x17d7}, {0x17dc, 0x17dd}, {0x17e0, 0x17e9}, + {0x180b, 0x180d}, {0x180f, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x18aa}, + {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1920, 0x192b}, {0x1930, 0x193b}, + {0x1946, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19b0, 0x19c9}, + {0x19d0, 0x19da}, {0x1a00, 0x1a1b}, {0x1a20, 0x1a5e}, {0x1a60, 0x1a7c}, + {0x1a7f, 0x1a89}, {0x1a90, 0x1a99}, {0x1aa7, 0x1aa7}, {0x1ab0, 0x1abd}, + {0x1abf, 0x1add}, {0x1ae0, 0x1aeb}, {0x1b00, 0x1b4c}, {0x1b50, 0x1b59}, + {0x1b6b, 0x1b73}, {0x1b80, 0x1bf3}, {0x1c00, 0x1c37}, {0x1c40, 0x1c49}, + {0x1c4d, 0x1c7d}, {0x1c80, 0x1c8a}, {0x1c90, 0x1cba}, {0x1cbd, 0x1cbf}, + {0x1cd0, 0x1cd2}, {0x1cd4, 0x1cfa}, {0x1d00, 0x1f15}, {0x1f18, 0x1f1d}, + {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f59, 0x1f59}, + {0x1f5b, 0x1f5b}, {0x1f5d, 0x1f5d}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, + {0x1fb6, 0x1fbc}, {0x1fbe, 0x1fbe}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc}, + {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4}, + {0x1ff6, 0x1ffc}, {0x200c, 0x200d}, {0x203f, 0x2040}, {0x2054, 0x2054}, + {0x2071, 0x2071}, {0x207f, 0x207f}, {0x2090, 0x209c}, {0x20d0, 0x20dc}, + {0x20e1, 0x20e1}, {0x20e5, 0x20f0}, {0x2102, 0x2102}, {0x2107, 0x2107}, + {0x210a, 0x2113}, {0x2115, 0x2115}, {0x2118, 0x211d}, {0x2124, 0x2124}, + {0x2126, 0x2126}, {0x2128, 0x2128}, {0x212a, 0x2139}, {0x213c, 0x213f}, + {0x2145, 0x2149}, {0x214e, 0x214e}, {0x2160, 0x2188}, {0x2c00, 0x2ce4}, + {0x2ceb, 0x2cf3}, {0x2d00, 0x2d25}, {0x2d27, 0x2d27}, {0x2d2d, 0x2d2d}, + {0x2d30, 0x2d67}, {0x2d6f, 0x2d6f}, {0x2d7f, 0x2d96}, {0x2da0, 0x2da6}, + {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, + {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x2de0, 0x2dff}, + {0x3005, 0x3007}, {0x3021, 0x302f}, {0x3031, 0x3035}, {0x3038, 0x303c}, + {0x3041, 0x3096}, {0x3099, 0x309f}, {0x30a1, 0x30ff}, {0x3105, 0x312f}, + {0x3131, 0x318e}, {0x31a0, 0x31bf}, {0x31f0, 0x31ff}, {0x3400, 0x4dbf}, + {0x4e00, 0xa48c}, {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa62b}, + {0xa640, 0xa66f}, {0xa674, 0xa67d}, {0xa67f, 0xa6f1}, {0xa717, 0xa71f}, + {0xa722, 0xa788}, {0xa78b, 0xa7dc}, {0xa7f1, 0xa827}, {0xa82c, 0xa82c}, + {0xa840, 0xa873}, {0xa880, 0xa8c5}, {0xa8d0, 0xa8d9}, {0xa8e0, 0xa8f7}, + {0xa8fb, 0xa8fb}, {0xa8fd, 0xa92d}, {0xa930, 0xa953}, {0xa960, 0xa97c}, + {0xa980, 0xa9c0}, {0xa9cf, 0xa9d9}, {0xa9e0, 0xa9fe}, {0xaa00, 0xaa36}, + {0xaa40, 0xaa4d}, {0xaa50, 0xaa59}, {0xaa60, 0xaa76}, {0xaa7a, 0xaac2}, + {0xaadb, 0xaadd}, {0xaae0, 0xaaef}, {0xaaf2, 0xaaf6}, {0xab01, 0xab06}, + {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e}, + {0xab30, 0xab5a}, {0xab5c, 0xab69}, {0xab70, 0xabea}, {0xabec, 0xabed}, + {0xabf0, 0xabf9}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, + {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, + {0xfb1d, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb3e, 0xfb3e}, + {0xfb40, 0xfb41}, {0xfb43, 0xfb44}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d}, + {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe00, 0xfe0f}, + {0xfe20, 0xfe2f}, {0xfe33, 0xfe34}, {0xfe4d, 0xfe4f}, {0xfe70, 0xfe74}, + {0xfe76, 0xfefc}, {0xff10, 0xff19}, {0xff21, 0xff3a}, {0xff3f, 0xff3f}, + {0xff41, 0xff5a}, {0xff65, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, + {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0x10000, 0x1000b}, {0x1000d, 0x10026}, + {0x10028, 0x1003a}, {0x1003c, 0x1003d}, {0x1003f, 0x1004d}, {0x10050, 0x1005d}, + {0x10080, 0x100fa}, {0x10140, 0x10174}, {0x101fd, 0x101fd}, {0x10280, 0x1029c}, + {0x102a0, 0x102d0}, {0x102e0, 0x102e0}, {0x10300, 0x1031f}, {0x1032d, 0x1034a}, + {0x10350, 0x1037a}, {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, + {0x103d1, 0x103d5}, {0x10400, 0x1049d}, {0x104a0, 0x104a9}, {0x104b0, 0x104d3}, + {0x104d8, 0x104fb}, {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10570, 0x1057a}, + {0x1057c, 0x1058a}, {0x1058c, 0x10592}, {0x10594, 0x10595}, {0x10597, 0x105a1}, + {0x105a3, 0x105b1}, {0x105b3, 0x105b9}, {0x105bb, 0x105bc}, {0x105c0, 0x105f3}, + {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785}, + {0x10787, 0x107b0}, {0x107b2, 0x107ba}, {0x10800, 0x10805}, {0x10808, 0x10808}, + {0x1080a, 0x10835}, {0x10837, 0x10838}, {0x1083c, 0x1083c}, {0x1083f, 0x10855}, + {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x108e0, 0x108f2}, {0x108f4, 0x108f5}, + {0x10900, 0x10915}, {0x10920, 0x10939}, {0x10940, 0x10959}, {0x10980, 0x109b7}, + {0x109be, 0x109bf}, {0x10a00, 0x10a03}, {0x10a05, 0x10a06}, {0x10a0c, 0x10a13}, + {0x10a15, 0x10a17}, {0x10a19, 0x10a35}, {0x10a38, 0x10a3a}, {0x10a3f, 0x10a3f}, + {0x10a60, 0x10a7c}, {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae6}, + {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91}, + {0x10c00, 0x10c48}, {0x10c80, 0x10cb2}, {0x10cc0, 0x10cf2}, {0x10d00, 0x10d27}, + {0x10d30, 0x10d39}, {0x10d40, 0x10d65}, {0x10d69, 0x10d6d}, {0x10d6f, 0x10d85}, + {0x10e80, 0x10ea9}, {0x10eab, 0x10eac}, {0x10eb0, 0x10eb1}, {0x10ec2, 0x10ec7}, + {0x10efa, 0x10f1c}, {0x10f27, 0x10f27}, {0x10f30, 0x10f50}, {0x10f70, 0x10f85}, + {0x10fb0, 0x10fc4}, {0x10fe0, 0x10ff6}, {0x11000, 0x11046}, {0x11066, 0x11075}, + {0x1107f, 0x110ba}, {0x110c2, 0x110c2}, {0x110d0, 0x110e8}, {0x110f0, 0x110f9}, + {0x11100, 0x11134}, {0x11136, 0x1113f}, {0x11144, 0x11147}, {0x11150, 0x11173}, + {0x11176, 0x11176}, {0x11180, 0x111c4}, {0x111c9, 0x111cc}, {0x111ce, 0x111da}, + {0x111dc, 0x111dc}, {0x11200, 0x11211}, {0x11213, 0x11237}, {0x1123e, 0x11241}, + {0x11280, 0x11286}, {0x11288, 0x11288}, {0x1128a, 0x1128d}, {0x1128f, 0x1129d}, + {0x1129f, 0x112a8}, {0x112b0, 0x112ea}, {0x112f0, 0x112f9}, {0x11300, 0x11303}, + {0x11305, 0x1130c}, {0x1130f, 0x11310}, {0x11313, 0x11328}, {0x1132a, 0x11330}, + {0x11332, 0x11333}, {0x11335, 0x11339}, {0x1133b, 0x11344}, {0x11347, 0x11348}, + {0x1134b, 0x1134d}, {0x11350, 0x11350}, {0x11357, 0x11357}, {0x1135d, 0x11363}, + {0x11366, 0x1136c}, {0x11370, 0x11374}, {0x11380, 0x11389}, {0x1138b, 0x1138b}, + {0x1138e, 0x1138e}, {0x11390, 0x113b5}, {0x113b7, 0x113c0}, {0x113c2, 0x113c2}, + {0x113c5, 0x113c5}, {0x113c7, 0x113ca}, {0x113cc, 0x113d3}, {0x113e1, 0x113e2}, + {0x11400, 0x1144a}, {0x11450, 0x11459}, {0x1145e, 0x11461}, {0x11480, 0x114c5}, + {0x114c7, 0x114c7}, {0x114d0, 0x114d9}, {0x11580, 0x115b5}, {0x115b8, 0x115c0}, + {0x115d8, 0x115dd}, {0x11600, 0x11640}, {0x11644, 0x11644}, {0x11650, 0x11659}, + {0x11680, 0x116b8}, {0x116c0, 0x116c9}, {0x116d0, 0x116e3}, {0x11700, 0x1171a}, + {0x1171d, 0x1172b}, {0x11730, 0x11739}, {0x11740, 0x11746}, {0x11800, 0x1183a}, + {0x118a0, 0x118e9}, {0x118ff, 0x11906}, {0x11909, 0x11909}, {0x1190c, 0x11913}, + {0x11915, 0x11916}, {0x11918, 0x11935}, {0x11937, 0x11938}, {0x1193b, 0x11943}, + {0x11950, 0x11959}, {0x119a0, 0x119a7}, {0x119aa, 0x119d7}, {0x119da, 0x119e1}, + {0x119e3, 0x119e4}, {0x11a00, 0x11a3e}, {0x11a47, 0x11a47}, {0x11a50, 0x11a99}, + {0x11a9d, 0x11a9d}, {0x11ab0, 0x11af8}, {0x11b60, 0x11b67}, {0x11bc0, 0x11be0}, + {0x11bf0, 0x11bf9}, {0x11c00, 0x11c08}, {0x11c0a, 0x11c36}, {0x11c38, 0x11c40}, + {0x11c50, 0x11c59}, {0x11c72, 0x11c8f}, {0x11c92, 0x11ca7}, {0x11ca9, 0x11cb6}, + {0x11d00, 0x11d06}, {0x11d08, 0x11d09}, {0x11d0b, 0x11d36}, {0x11d3a, 0x11d3a}, + {0x11d3c, 0x11d3d}, {0x11d3f, 0x11d47}, {0x11d50, 0x11d59}, {0x11d60, 0x11d65}, + {0x11d67, 0x11d68}, {0x11d6a, 0x11d8e}, {0x11d90, 0x11d91}, {0x11d93, 0x11d98}, + {0x11da0, 0x11da9}, {0x11db0, 0x11ddb}, {0x11de0, 0x11de9}, {0x11ee0, 0x11ef6}, + {0x11f00, 0x11f10}, {0x11f12, 0x11f3a}, {0x11f3e, 0x11f42}, {0x11f50, 0x11f5a}, + {0x11fb0, 0x11fb0}, {0x12000, 0x12399}, {0x12400, 0x1246e}, {0x12480, 0x12543}, + {0x12f90, 0x12ff0}, {0x13000, 0x1342f}, {0x13440, 0x13455}, {0x13460, 0x143fa}, + {0x14400, 0x14646}, {0x16100, 0x16139}, {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, + {0x16a60, 0x16a69}, {0x16a70, 0x16abe}, {0x16ac0, 0x16ac9}, {0x16ad0, 0x16aed}, + {0x16af0, 0x16af4}, {0x16b00, 0x16b36}, {0x16b40, 0x16b43}, {0x16b50, 0x16b59}, + {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16d40, 0x16d6c}, {0x16d70, 0x16d79}, + {0x16e40, 0x16e7f}, {0x16ea0, 0x16eb8}, {0x16ebb, 0x16ed3}, {0x16f00, 0x16f4a}, + {0x16f4f, 0x16f87}, {0x16f8f, 0x16f9f}, {0x16fe0, 0x16fe1}, {0x16fe3, 0x16fe4}, + {0x16ff0, 0x16ff6}, {0x17000, 0x18cd5}, {0x18cff, 0x18d1e}, {0x18d80, 0x18df2}, + {0x1aff0, 0x1aff3}, {0x1aff5, 0x1affb}, {0x1affd, 0x1affe}, {0x1b000, 0x1b122}, + {0x1b132, 0x1b132}, {0x1b150, 0x1b152}, {0x1b155, 0x1b155}, {0x1b164, 0x1b167}, + {0x1b170, 0x1b2fb}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88}, + {0x1bc90, 0x1bc99}, {0x1bc9d, 0x1bc9e}, {0x1ccf0, 0x1ccf9}, {0x1cf00, 0x1cf2d}, + {0x1cf30, 0x1cf46}, {0x1d165, 0x1d169}, {0x1d16d, 0x1d172}, {0x1d17b, 0x1d182}, + {0x1d185, 0x1d18b}, {0x1d1aa, 0x1d1ad}, {0x1d242, 0x1d244}, {0x1d400, 0x1d454}, + {0x1d456, 0x1d49c}, {0x1d49e, 0x1d49f}, {0x1d4a2, 0x1d4a2}, {0x1d4a5, 0x1d4a6}, + {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bb, 0x1d4bb}, {0x1d4bd, 0x1d4c3}, + {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, + {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d546, 0x1d546}, + {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0}, {0x1d6c2, 0x1d6da}, + {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734}, {0x1d736, 0x1d74e}, + {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8}, {0x1d7aa, 0x1d7c2}, + {0x1d7c4, 0x1d7cb}, {0x1d7ce, 0x1d7ff}, {0x1da00, 0x1da36}, {0x1da3b, 0x1da6c}, + {0x1da75, 0x1da75}, {0x1da84, 0x1da84}, {0x1da9b, 0x1da9f}, {0x1daa1, 0x1daaf}, + {0x1df00, 0x1df1e}, {0x1df25, 0x1df2a}, {0x1e000, 0x1e006}, {0x1e008, 0x1e018}, + {0x1e01b, 0x1e021}, {0x1e023, 0x1e024}, {0x1e026, 0x1e02a}, {0x1e030, 0x1e06d}, + {0x1e08f, 0x1e08f}, {0x1e100, 0x1e12c}, {0x1e130, 0x1e13d}, {0x1e140, 0x1e149}, + {0x1e14e, 0x1e14e}, {0x1e290, 0x1e2ae}, {0x1e2c0, 0x1e2f9}, {0x1e4d0, 0x1e4f9}, + {0x1e5d0, 0x1e5fa}, {0x1e6c0, 0x1e6de}, {0x1e6e0, 0x1e6f5}, {0x1e6fe, 0x1e6ff}, + {0x1e7e0, 0x1e7e6}, {0x1e7e8, 0x1e7eb}, {0x1e7ed, 0x1e7ee}, {0x1e7f0, 0x1e7fe}, + {0x1e800, 0x1e8c4}, {0x1e8d0, 0x1e8d6}, {0x1e900, 0x1e94b}, {0x1e950, 0x1e959}, + {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee21, 0x1ee22}, {0x1ee24, 0x1ee24}, + {0x1ee27, 0x1ee27}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee39, 0x1ee39}, + {0x1ee3b, 0x1ee3b}, {0x1ee42, 0x1ee42}, {0x1ee47, 0x1ee47}, {0x1ee49, 0x1ee49}, + {0x1ee4b, 0x1ee4b}, {0x1ee4d, 0x1ee4f}, {0x1ee51, 0x1ee52}, {0x1ee54, 0x1ee54}, + {0x1ee57, 0x1ee57}, {0x1ee59, 0x1ee59}, {0x1ee5b, 0x1ee5b}, {0x1ee5d, 0x1ee5d}, + {0x1ee5f, 0x1ee5f}, {0x1ee61, 0x1ee62}, {0x1ee64, 0x1ee64}, {0x1ee67, 0x1ee6a}, + {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee7e, 0x1ee7e}, + {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, + {0x1eeab, 0x1eebb}, {0x1fbf0, 0x1fbf9}, {0x20000, 0x2a6df}, {0x2a700, 0x2b81d}, + {0x2b820, 0x2cead}, {0x2ceb0, 0x2ebe0}, {0x2ebf0, 0x2ee5d}, {0x2f800, 0x2fa1d}, + {0x30000, 0x3134a}, {0x31350, 0x33479}, {0xe0100, 0xe01ef}, +}; diff --git a/apps/mobile/modules/t3-highlights/cpp/t3_highlights.c b/apps/mobile/modules/t3-highlights/cpp/t3_highlights.c new file mode 100644 index 000000000000..f1605c6cc59b --- /dev/null +++ b/apps/mobile/modules/t3-highlights/cpp/t3_highlights.c @@ -0,0 +1,139 @@ +#include "t3_highlights.h" + +#include +#include + +#include "highlights.h" +#include "wasm-rt-impl.h" + +// The control block and buffer layout mirror the JavaScript glue in +// @pierre/highlights (`HighlightsHighlighter` in dist/highlighter.js). +#define INPUT_OFFSET WASM_DEFAULT_PAGE_SIZE +#define INPUT_PADDING 96u +#define MODE_UTF16_LINE_RECORDS 3u +// Like the JavaScript glue, a small input after a large one gets a fresh +// instance so the grown memory is released. +#define RESET_AFTER_PAGES 128u + +struct w2c_env { + w2c_highlights* instance; +}; + +static w2c_highlights instance; +static struct w2c_env env = {&instance}; +static bool instantiated = false; + +#include "generated/id_ranges.inc" + +static bool in_ranges(const uint32_t ranges[][2], size_t count, uint32_t code_point) { + size_t low = 0; + size_t high = count; + while (low < high) { + size_t mid = low + (high - low) / 2; + if (code_point < ranges[mid][0]) { + high = mid; + } else if (code_point > ranges[mid][1]) { + low = mid + 1; + } else { + return true; + } + } + return false; +} + +// Decodes like the JavaScript glue, including its leniency for malformed +// sequences, so both builds classify the same bytes the same way. +static u32 id_class(struct w2c_env* host, u32 ptr, u32 len, bool start) { + wasm_rt_memory_t* memory = w2c_highlights_memory(host->instance); + if ((uint64_t)ptr + 4 > memory->size) return 0; + const uint8_t* b = memory->data + ptr; + uint32_t code_point; + if (len == 2) { + code_point = (uint32_t)(b[0] & 31) << 6 | (b[1] & 63); + } else if (len == 3) { + code_point = (uint32_t)(b[0] & 15) << 12 | (uint32_t)(b[1] & 63) << 6 | (b[2] & 63); + } else { + code_point = (uint32_t)(b[0] & 7) << 18 | (uint32_t)(b[1] & 63) << 12 | + (uint32_t)(b[2] & 63) << 6 | (b[3] & 63); + } + if (code_point > 0x10ffff) return 0; + return start ? in_ranges(id_start_ranges, sizeof(id_start_ranges) / sizeof(id_start_ranges[0]), + code_point) + : in_ranges(id_continue_ranges, + sizeof(id_continue_ranges) / sizeof(id_continue_ranges[0]), code_point); +} + +u32 w2c_env_is_id_start(struct w2c_env* host, u32 ptr, u32 len) { + return id_class(host, ptr, len, true); +} + +u32 w2c_env_is_id_continue(struct w2c_env* host, u32 ptr, u32 len) { + return id_class(host, ptr, len, false); +} + +static void reset_instance(void) { + if (!instantiated) return; + wasm2c_highlights_free(&instance); + instantiated = false; +} + +static void ensure_instance(void) { + if (instantiated) return; + wasm_rt_init(); + wasm2c_highlights_instantiate(&instance, &env); + instantiated = true; +} + +static void write_u32(uint8_t* at, uint32_t value) { + at[0] = value & 0xff; + at[1] = (value >> 8) & 0xff; + at[2] = (value >> 16) & 0xff; + at[3] = value >> 24; +} + +static uint32_t read_u32(const uint8_t* at) { + return (uint32_t)at[0] | (uint32_t)at[1] << 8 | (uint32_t)at[2] << 16 | (uint32_t)at[3] << 24; +} + +int64_t t3_highlights_tokenize(const uint8_t* source, size_t length, uint8_t language, + const uint32_t** records) { + *records = NULL; + if (length > UINT32_MAX - WASM_DEFAULT_PAGE_SIZE * 2) return -1; + + if (instantiated && w2c_highlights_memory(&instance)->pages > RESET_AFTER_PAGES && + length <= WASM_DEFAULT_PAGE_SIZE) { + reset_instance(); + } + ensure_instance(); + + wasm_rt_memory_t* memory = w2c_highlights_memory(&instance); + uint64_t needed_pages = 1 + (length + INPUT_PADDING + WASM_DEFAULT_PAGE_SIZE - 1) / WASM_DEFAULT_PAGE_SIZE; + if (needed_pages > memory->pages && + wasm_rt_grow_memory(memory, needed_pages - memory->pages) == (uint64_t)-1) { + return -1; + } + + uint8_t* data = memory->data; + if (length > 0) memcpy(data + INPUT_OFFSET, source, length); + data[INPUT_OFFSET + length] = 0; + data[0] = language; + data[1] = MODE_UTF16_LINE_RECORDS; + write_u32(data + 2, (uint32_t)length); + + // `wasm_rt_impl_try` without the exception-handling runtime this module does + // not use. A trap longjmps back here. + WASM_RT_SAVE_STACK_DEPTH(); + if (WASM_RT_SETJMP(g_wasm_rt_jmp_buf) != WASM_RT_TRAP_NONE) { + reset_instance(); + return -1; + } + w2c_highlights_highlight(&instance); + + // The lexer can grow memory, which moves it. + data = memory->data; + uint32_t start = read_u32(data + 6); + uint32_t byte_length = read_u32(data + 10); + if ((uint64_t)start + byte_length > memory->size || start % 4 != 0) return -1; + *records = (const uint32_t*)(data + start); + return byte_length / 4; +} diff --git a/apps/mobile/modules/t3-highlights/cpp/t3_highlights.h b/apps/mobile/modules/t3-highlights/cpp/t3_highlights.h new file mode 100644 index 000000000000..67e8e64f6475 --- /dev/null +++ b/apps/mobile/modules/t3-highlights/cpp/t3_highlights.h @@ -0,0 +1,27 @@ +#ifndef T3_HIGHLIGHTS_H +#define T3_HIGHLIGHTS_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Lexes UTF-8 `source` with @pierre/highlights language `language` and points + * `records` at `(endUtf16, tokenId)` pairs. A token ID of UINT32_MAX ends a + * line, and its end value is where the next line starts. The records stay + * valid until the next call. Returns the number of uint32 values, or -1 when + * the lexer could not run. + * + * Not thread-safe: callers serialize access. + */ +int64_t t3_highlights_tokenize(const uint8_t* source, size_t length, uint8_t language, + const uint32_t** records); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/apps/mobile/modules/t3-highlights/expo-module.config.json b/apps/mobile/modules/t3-highlights/expo-module.config.json new file mode 100644 index 000000000000..247e2a76a89a --- /dev/null +++ b/apps/mobile/modules/t3-highlights/expo-module.config.json @@ -0,0 +1,10 @@ +{ + "platforms": ["apple", "android"], + "apple": { + "modules": ["T3HighlightsModule"], + "podspecPath": "T3HighlightsNative.podspec" + }, + "android": { + "modules": ["expo.modules.t3highlights.T3HighlightsModule"] + } +} diff --git a/apps/mobile/modules/t3-highlights/ios/T3HighlightsModule.swift b/apps/mobile/modules/t3-highlights/ios/T3HighlightsModule.swift new file mode 100644 index 000000000000..32ee8b6f062a --- /dev/null +++ b/apps/mobile/modules/t3-highlights/ios/T3HighlightsModule.swift @@ -0,0 +1,29 @@ +import ExpoModulesCore + +public final class T3HighlightsModule: Module { + private let lock = NSLock() + + public func definition() -> ModuleDefinition { + Name("T3Highlights") + + Function("tokenize") { (source: String, language: Int) -> ArrayBuffer? in + var source = source + return source.withUTF8 { utf8 in + self.lock.withLock { Self.tokenize(utf8, language: language) } + } + } + } + + private static func tokenize(_ utf8: UnsafeBufferPointer, language: Int) -> ArrayBuffer? { + guard let languageId = UInt8(exactly: language) else { return nil } + var records: UnsafePointer? + let count = t3_highlights_tokenize(utf8.baseAddress, utf8.count, languageId, &records) + guard count >= 0 else { return nil } + let byteCount = Int(count) * MemoryLayout.size + let buffer = ArrayBuffer(size: byteCount, initializeToZero: false) + if let records, byteCount > 0 { + buffer.withUnsafeMutableBytes { $0.copyMemory(from: UnsafeRawBufferPointer(start: records, count: byteCount)) } + } + return buffer + } +} diff --git a/apps/mobile/modules/t3-highlights/package.json b/apps/mobile/modules/t3-highlights/package.json new file mode 100644 index 000000000000..81ebd561155d --- /dev/null +++ b/apps/mobile/modules/t3-highlights/package.json @@ -0,0 +1,17 @@ +{ + "name": "@t3tools/mobile-highlights-native", + "version": "0.0.0", + "private": true, + "expo-module": { + "ios": { + "modules": [ + "T3HighlightsModule" + ] + }, + "android": { + "modules": [ + "expo.modules.t3highlights.T3HighlightsModule" + ] + } + } +} diff --git a/apps/mobile/package.json b/apps/mobile/package.json index ba3fbb3a3f52..5ee32982a496 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -45,6 +45,7 @@ "sync:pierre-icons": "node scripts/sync-pierre-file-icons.mjs", "measure-renders": "node scripts/measure-renders.mts", "generate": "node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON scripts/generate-uniwind-themes.mts", + "generate:highlights": "node scripts/generate-highlights.mts", "test": "vp test run --project unit --project react", "typecheck": "tsc --noEmit" }, @@ -59,18 +60,16 @@ "@material/material-color-utilities": "0.3.0", "@noble/curves": "catalog:", "@pierre/diffs": "catalog:", + "@pierre/highlights": "catalog:", "@react-native-ai/apple": "0.12.0", "@react-native-async-storage/async-storage": "3.1.1", "@react-native-menu/menu": "^2.0.0", "@react-navigation/elements": "2.9.45", "@react-navigation/native": "7.5.1", "@react-navigation/native-stack": "7.21.0", - "@shikijs/core": "4.2.0", - "@shikijs/engine-javascript": "4.2.0", - "@shikijs/langs": "4.2.0", - "@shikijs/themes": "4.2.0", "@t3tools/client-runtime": "workspace:*", "@t3tools/contracts": "workspace:*", + "@t3tools/mobile-highlights-native": "file:./modules/t3-highlights", "@t3tools/mobile-review-diff-native": "file:./modules/t3-review-diff", "@t3tools/mobile-source-text": "file:./modules/t3-source-text", "@t3tools/mobile-terminal-native": "file:./modules/t3-terminal", @@ -136,13 +135,11 @@ "react-native-reanimated": "4.7.1", "react-native-safe-area-context": "~5.10.1", "react-native-screens": "file:deps/react-native-screens-5.0.0-t3.43.tgz", - "react-native-shiki-engine": "^0.3.12", "react-native-svg": "15.16.0", "react-native-webview": "14.0.1", "react-native-worklets": "0.13.0", "remark-gfm": "catalog:", "remark-parse": "catalog:", - "shiki": "4.2.0", "tailwind-merge": "^3.5.0", "unified": "catalog:", "uniwind": "1.13.0" diff --git a/apps/mobile/plugins/withAndroidFbjniVersion.cjs b/apps/mobile/plugins/withAndroidFbjniVersion.cjs deleted file mode 100644 index 1736f7797f75..000000000000 --- a/apps/mobile/plugins/withAndroidFbjniVersion.cjs +++ /dev/null @@ -1,46 +0,0 @@ -const { withProjectBuildGradle } = require("expo/config-plugins"); - -// react-native-shiki-engine 0.3.12 asks for `com.facebook.fbjni:fbjni:+`, which Gradle -// resolves to the newest release on Maven Central. That is now 0.8.x, built -// with NDK 28, while React Native links the NDK 27.1 C++ runtime and requires -// 0.7.0. The two disagree on libc++, so the app dies in -// ReactNativeFeatureFlagsCxxInterop's static initializer before any JavaScript -// runs ("cannot locate symbol __cxa_init_primary_exception"). -// -// Keep this equal to `fbjni` in react-native/gradle/libs.versions.toml, and move -// it with React Native. withAndroidFbjniVersion.test.mjs fails when they differ. -const FBJNI_VERSION = "0.7.0"; -const MARKER = "withAndroidFbjniVersion"; - -const BLOCKS = { - groovy: ` -// Added by ${MARKER}: keep fbjni on the version React Native ships against. -allprojects { - configurations.all { - resolutionStrategy.force 'com.facebook.fbjni:fbjni:${FBJNI_VERSION}' - } -} -`, - kt: ` -// Added by ${MARKER}: keep fbjni on the version React Native ships against. -allprojects { - configurations.all { - resolutionStrategy.force("com.facebook.fbjni:fbjni:${FBJNI_VERSION}") - } -} -`, -}; - -module.exports = function withAndroidFbjniVersion(config) { - return withProjectBuildGradle(config, (nextConfig) => { - const { contents, language } = nextConfig.modResults; - const block = BLOCKS[language]; - if (block === undefined) { - throw new Error(`${MARKER}: unsupported root build.gradle language "${language}".`); - } - if (!contents.includes(MARKER)) { - nextConfig.modResults.contents = `${contents.trimEnd()}\n${block}`; - } - return nextConfig; - }); -}; diff --git a/apps/mobile/plugins/withAndroidFbjniVersion.test.mjs b/apps/mobile/plugins/withAndroidFbjniVersion.test.mjs deleted file mode 100644 index c221c14ca447..000000000000 --- a/apps/mobile/plugins/withAndroidFbjniVersion.test.mjs +++ /dev/null @@ -1,109 +0,0 @@ -import * as NodeFS from "node:fs"; -import * as NodeModule from "node:module"; -import * as NodeOS from "node:os"; -import * as NodePath from "node:path"; -import { afterEach, describe, expect, it } from "vite-plus/test"; - -const require = NodeModule.createRequire(import.meta.url); -const { compileModsAsync } = require("expo/config-plugins"); -const { getConfig } = require("expo/config"); -const withAndroidFbjniVersion = require("./withAndroidFbjniVersion.cjs"); - -const catalog = NodeFS.readFileSync( - NodePath.join(require.resolve("react-native/package.json"), "..", "gradle", "libs.versions.toml"), - "utf8", -); -const shippedFbjniVersion = /^fbjni\s*=\s*"([^"]+)"/m.exec(catalog)?.[1]; - -// The root build.gradle generated by Expo SDK 58. -const ROOT_BUILD_GRADLE = `// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - repositories { - google() - mavenCentral() - } - dependencies { - classpath('com.android.tools.build:gradle') - classpath('com.facebook.react:react-native-gradle-plugin') - def kotlinVersion = findProperty('android.kotlinVersion') - classpath(kotlinVersion ? "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" : 'org.jetbrains.kotlin:kotlin-gradle-plugin') - } -} - -allprojects { - repositories { - google() - mavenCentral() - maven { url 'https://www.jitpack.io' } - } -} - -apply plugin: "expo-root-project" -apply plugin: "com.facebook.react.rootproject" -`; - -const projectRoots = []; - -afterEach(() => { - for (const root of projectRoots.splice(0)) NodeFS.rmSync(root, { recursive: true, force: true }); -}); - -/** Runs the plugin through Expo's own prebuild mod pipeline against a real file. */ -async function prebuildRootGradle(fileName, contents, plugin = withAndroidFbjniVersion) { - const projectRoot = NodeFS.mkdtempSync(NodePath.join(NodeOS.tmpdir(), "fbjni-plugin-")); - projectRoots.push(projectRoot); - NodeFS.mkdirSync(NodePath.join(projectRoot, "android")); - NodeFS.writeFileSync(NodePath.join(projectRoot, "android", fileName), contents); - await compileModsAsync(plugin({ name: "t3", slug: "t3" }), { - projectRoot, - platforms: ["android"], - }); - return NodeFS.readFileSync(NodePath.join(projectRoot, "android", fileName), "utf8"); -} - -function expectProjectWideForce(result, language = "groovy") { - expect(shippedFbjniVersion).toBeDefined(); - const coordinate = `com.facebook.fbjni:fbjni:${shippedFbjniVersion}`; - const force = language === "groovy" ? ` '${coordinate}'` : `("${coordinate}")`; - // Anchor the complete top-level block, including scope, at the end of the file. - const expected = `\nallprojects {\n configurations.all {\n resolutionStrategy.force${force}\n }\n}\n`; - expect(result.slice(-expected.length)).toBe(expected); -} - -describe("withAndroidFbjniVersion", () => { - it("forces the React Native fbjni version for every Gradle project", async () => { - const result = await prebuildRootGradle("build.gradle", ROOT_BUILD_GRADLE); - - expect(result.startsWith(ROOT_BUILD_GRADLE.trimEnd())).toBe(true); - expectProjectWideForce(result); - }); - - it("adds the force once when prebuild runs again", async () => { - const once = await prebuildRootGradle("build.gradle", ROOT_BUILD_GRADLE); - const twice = await prebuildRootGradle("build.gradle", once); - - expect(twice).toBe(once); - }); - - // regression: #20118 fresh Android builds no longer crash on launch - it("writes Kotlin syntax into a Kotlin build script", async () => { - const result = await prebuildRootGradle("build.gradle.kts", "plugins {}\n"); - - expectProjectWideForce(result, "kt"); - }); - - it("applies the force through the registered app config", async () => { - const { exp } = getConfig(NodePath.resolve(import.meta.dirname, ".."), { - isModdedConfig: true, - }); - const projectBuildGradle = exp.mods?.android?.projectBuildGradle; - // Run the app's registered root-Gradle mods without its unrelated native-file mods. - const result = await prebuildRootGradle("build.gradle", ROOT_BUILD_GRADLE, (config) => ({ - ...config, - mods: { android: projectBuildGradle ? { projectBuildGradle } : {} }, - })); - - expectProjectWideForce(result); - }); -}); diff --git a/apps/mobile/scripts/generate-highlights.mts b/apps/mobile/scripts/generate-highlights.mts new file mode 100644 index 000000000000..a4635875ead7 --- /dev/null +++ b/apps/mobile/scripts/generate-highlights.mts @@ -0,0 +1,193 @@ +#!/usr/bin/env node + +// Regenerates the native @pierre/highlights build and its JavaScript tables. +// +// Hermes has no WebAssembly, so wasm2c turns the package's highlights.wasm into +// C that the T3Highlights native module compiles. Token IDs and language IDs are +// that build's ABI, so the language and theme tables come from the same package +// version. Run after bumping @pierre/highlights: +// +// WASM2C=/path/to/wabt-1.0.42/bin/wasm2c vp run --filter @t3tools/mobile generate:highlights + +import * as NodeChildProcess from "node:child_process"; +import * as NodeCrypto from "node:crypto"; +import * as NodeFS from "node:fs"; +import * as NodeModule from "node:module"; +import * as NodeOS from "node:os"; +import * as NodePath from "node:path"; +import * as NodeURL from "node:url"; + +const WASM2C_VERSION = "1.0.42"; +const THEMES = { light: "pierre-light", dark: "pierre-dark" } as const; + +const mobileRoot = NodePath.resolve(import.meta.dirname, ".."); +const moduleRoot = NodePath.join(mobileRoot, "modules/t3-highlights"); +const generatedDataPath = NodePath.join(mobileRoot, "src/lib/highlights.generated.ts"); + +interface ThemeStyle { + readonly color?: string; + readonly italic?: boolean; + readonly weight?: number; +} + +interface PreparedTheme { + readonly fg: string; + readonly styles: ReadonlyArray; +} + +function resolveHighlightsPackage() { + const require = NodeModule.createRequire(NodePath.join(mobileRoot, "package.json")); + const root = NodePath.dirname(require.resolve("@pierre/highlights/package.json")); + const { version } = JSON.parse(NodeFS.readFileSync(NodePath.join(root, "package.json"), "utf8")); + const wasm = NodeFS.readFileSync(NodePath.join(root, "dist/highlights.wasm")); + return { + root, + version: version as string, + wasmSha256: NodeCrypto.createHash("sha256").update(wasm).digest("hex"), + }; +} + +function importDist(root: string, file: string): Promise { + // The package exports neither its language table nor its theme resolver. + return import(NodeURL.pathToFileURL(NodePath.join(root, "dist", file)).href); +} + +function generatedBanner(source: ReturnType): string { + return `Generated by apps/mobile/scripts/generate-highlights.mts from @pierre/highlights ${source.version} (highlights.wasm sha256 ${source.wasmSha256}). Do not edit.`; +} + +export async function computeHighlightsData() { + const source = resolveHighlightsPackage(); + const { default: languageIds } = await importDist<{ default: Record }>( + source.root, + "languages.js", + ); + const { prepareTheme } = await importDist<{ prepareTheme: (theme: unknown) => PreparedTheme }>( + source.root, + "theme.js", + ); + + const themeStyles: Record> = {}; + for (const [scheme, name] of Object.entries(THEMES)) { + const { default: theme } = await importDist<{ default: unknown }>( + source.root, + `themes/${name}.js`, + ); + const { fg, styles } = prepareTheme(theme); + // Mirrors `lineRecordsToTokens`: unstyled tokens take the theme foreground. + themeStyles[scheme] = styles.map((style, tokenId) => { + const color = style?.color ?? fg; + if (!/^#[0-9a-f]{6}([0-9a-f]{2})?$/iu.test(color)) { + throw new Error(`${name} token ${tokenId} has a color React Native cannot draw: ${color}`); + } + const fontStyle = (style?.italic === true ? 1 : 0) | ((style?.weight ?? 0) >= 600 ? 2 : 0); + return [color, fontStyle] as const; + }); + } + + return { source, languageIds, themeStyles }; +} + +function renderHighlightsData(data: Awaited>): string { + return [ + `// ${generatedBanner(data.source)}`, + "", + `export const HIGHLIGHTS_LANGUAGE_IDS: Readonly> = ${JSON.stringify(data.languageIds)};`, + "", + "/** `[color, fontStyle]` by token ID. fontStyle bits: italic 1, bold 2. */", + `export const HIGHLIGHTS_THEME_STYLES: Readonly>> = ${JSON.stringify(data.themeStyles)};`, + "", + ].join("\n"); +} + +// The lexers ask the host whether a non-ASCII code point can start or continue +// an identifier. These are the classes the JavaScript glue tests with regexes. +function renderIdRanges(): string { + const classes = [ + ["id_start", /^\p{ID_Start}$/u], + ["id_continue", /^[‌‍\p{ID_Continue}]$/u], + ] as const; + let out = `/* Unicode ${process.versions.unicode} identifier classes. */\n`; + for (const [name, pattern] of classes) { + const ranges: Array<[number, number]> = []; + let start = -1; + for (let codePoint = 0; codePoint <= 0x110000; codePoint += 1) { + const member = + codePoint < 0x110000 && + (codePoint < 0xd800 || codePoint > 0xdfff) && + pattern.test(String.fromCodePoint(codePoint)); + if (member && start < 0) start = codePoint; + if (!member && start >= 0) { + ranges.push([start, codePoint - 1]); + start = -1; + } + } + out += `static const uint32_t ${name}_ranges[][2] = {\n`; + for (let index = 0; index < ranges.length; index += 4) { + const row = ranges.slice(index, index + 4); + out += ` ${row.map(([from, to]) => `{0x${from.toString(16)}, 0x${to.toString(16)}}`).join(", ")},\n`; + } + out += "};\n"; + } + return out; +} + +function resolveWasm2c(): { readonly binary: string; readonly prefix: string } { + const binary = process.env.WASM2C ?? "wasm2c"; + const version = NodeChildProcess.execFileSync(binary, ["--version"], { encoding: "utf8" }).trim(); + if (version !== WASM2C_VERSION) { + throw new Error(`Expected wasm2c ${WASM2C_VERSION}, found ${version}. Set WASM2C.`); + } + const resolved = NodeFS.realpathSync( + NodePath.isAbsolute(binary) + ? binary + : NodeChildProcess.execFileSync("which", [binary], { encoding: "utf8" }).trim(), + ); + return { binary, prefix: NodePath.resolve(NodePath.dirname(resolved), "..") }; +} + +async function generate() { + const source = resolveHighlightsPackage(); + const wasm2c = resolveWasm2c(); + const scratch = NodeFS.mkdtempSync(NodePath.join(NodeOS.tmpdir(), "t3-highlights-")); + try { + NodeChildProcess.execFileSync(wasm2c.binary, [ + NodePath.join(source.root, "dist/highlights.wasm"), + "-n", + "highlights", + "-o", + NodePath.join(scratch, "highlights.c"), + ]); + const banner = `/* ${generatedBanner(source)} */\n`; + for (const file of ["highlights.c", "highlights.h"]) { + const contents = NodeFS.readFileSync(NodePath.join(scratch, file), "utf8"); + NodeFS.writeFileSync(NodePath.join(moduleRoot, "Vendor/highlights", file), banner + contents); + } + } finally { + NodeFS.rmSync(scratch, { recursive: true, force: true }); + } + + // The runtime must come from the same wabt release as the generated code. + const runtime = [ + ["include/wasm-rt.h", "wasm-rt.h"], + ["share/wabt/wasm2c/wasm-rt-impl.h", "wasm-rt-impl.h"], + ["share/wabt/wasm2c/wasm-rt-impl.c", "wasm-rt-impl.c"], + ["share/wabt/wasm2c/wasm-rt-impl-tableops.inc", "wasm-rt-impl-tableops.inc"], + ["share/wabt/wasm2c/wasm-rt-mem-impl.c", "wasm-rt-mem-impl.c"], + ["share/wabt/wasm2c/wasm-rt-mem-impl-helper.inc", "wasm-rt-mem-impl-helper.inc"], + ] as const; + for (const [from, to] of runtime) { + NodeFS.copyFileSync( + NodePath.join(wasm2c.prefix, from), + NodePath.join(moduleRoot, "Vendor/wasm2c", to), + ); + } + + NodeFS.writeFileSync(NodePath.join(moduleRoot, "cpp/generated/id_ranges.inc"), renderIdRanges()); + NodeFS.writeFileSync(generatedDataPath, renderHighlightsData(await computeHighlightsData())); + NodeChildProcess.execFileSync("vp", ["fmt", generatedDataPath], { stdio: "inherit" }); +} + +if (import.meta.main) { + await generate(); +} diff --git a/apps/mobile/scripts/generate-highlights.test.ts b/apps/mobile/scripts/generate-highlights.test.ts new file mode 100644 index 000000000000..1dfd6ec285a9 --- /dev/null +++ b/apps/mobile/scripts/generate-highlights.test.ts @@ -0,0 +1,28 @@ +import * as NodeFS from "node:fs"; +import * as NodePath from "node:path"; +import { describe, expect, it } from "vite-plus/test"; + +import { HIGHLIGHTS_LANGUAGE_IDS, HIGHLIGHTS_THEME_STYLES } from "../src/lib/highlights.generated"; +import { computeHighlightsData } from "./generate-highlights.mts"; + +describe("generate highlights", () => { + // Token and language IDs are the native build's ABI. Bumping + // @pierre/highlights without regenerating would mislabel every token. + it("matches the installed @pierre/highlights", async () => { + const data = await computeHighlightsData(); + const nativeSource = NodeFS.readFileSync( + NodePath.resolve( + import.meta.dirname, + "../modules/t3-highlights/Vendor/highlights/highlights.c", + ), + "utf8", + ); + + const stale = "Stale. Run WASM2C=/bin/wasm2c vp run generate:highlights."; + expect(HIGHLIGHTS_LANGUAGE_IDS, stale).toEqual(data.languageIds); + expect(HIGHLIGHTS_THEME_STYLES, stale).toEqual(data.themeStyles); + expect(nativeSource.slice(0, nativeSource.indexOf("\n")), stale).toContain( + data.source.wasmSha256, + ); + }); +}); diff --git a/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.test.ts b/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.test.ts index 86840b141cdf..aa9275745ce1 100644 --- a/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.test.ts +++ b/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.test.ts @@ -1,41 +1,13 @@ -import { afterEach, describe, expect, it, vi } from "vite-plus/test"; +import { describe, expect, it, vi } from "vite-plus/test"; import type { NativeReviewDiffRow } from "./nativeReviewDiffSurface"; import type { NativeReviewDiffFile } from "./nativeReviewDiffTypes"; import { highlightNativeReviewDiffVisibleRows } from "./nativeReviewDiffHighlighter"; -const tokenization = vi.hoisted(() => ({ - calls: [] as string[], - afterCall: undefined as (() => void) | undefined, -})); - -vi.mock("@shikijs/core", async (importOriginal) => { - const original = await importOriginal(); - return { - ...original, - createHighlighterCore: async (...args: Parameters) => { - const highlighter = await original.createHighlighterCore(...args); - return { - ...highlighter, - codeToTokensBase: (...input: Parameters) => { - tokenization.calls.push(input[0]); - const result = highlighter.codeToTokensBase(...input); - tokenization.afterCall?.(); - return result; - }, - }; - }, - }; -}); - -vi.mock("react-native-shiki-engine", async () => { - const { createJavaScriptRegexEngine } = await import("@shikijs/engine-javascript"); - return { isNativeEngineAvailable: () => true, createNativeEngine: createJavaScriptRegexEngine }; -}); - -afterEach(() => { - tokenization.calls = []; - tokenization.afterCall = undefined; +vi.mock("expo", async () => { + const { createWasmHighlightsModule } = await import("../../lib/highlights.testing"); + const highlights = createWasmHighlightsModule(); + return { requireOptionalNativeModule: () => highlights }; }); const TYPESCRIPT_FILE: NativeReviewDiffFile = { @@ -73,7 +45,6 @@ function highlight( rows, files: [TYPESCRIPT_FILE], scheme: "dark", - engine: "javascript", firstRowIndex: 0, lastRowIndex: rows.length - 1, overscanRows: 0, @@ -83,7 +54,7 @@ function highlight( } describe("highlightNativeReviewDiffVisibleRows", () => { - it("does not carry grammar state across hunk boundaries", async () => { + it("does not carry grammar state across hunk boundaries", () => { const exportRow = makeLine({ id: "export-row", content: "export async function run() {}", @@ -94,32 +65,23 @@ describe("highlightNativeReviewDiffVisibleRows", () => { const rows = [ makeHunk("hunk-1"), makeLine({ - id: "import-open", - content: "import {", + id: "template-open", + content: "const message = `open", change: "context", oldLineNumber: 1, newLineNumber: 1, }), - makeLine({ - id: "import-entry", - content: " Model,", - change: "context", - oldLineNumber: 2, - newLineNumber: 2, - }), makeHunk("hunk-2"), exportRow, ]; - const [highlighted, standalone] = await Promise.all([ - highlight(rows), - highlight([makeHunk("standalone-hunk"), exportRow]), - ]); + const highlighted = highlight(rows); + const standalone = highlight([makeHunk("standalone-hunk"), exportRow]); expect(highlighted.tokensByRowId[exportRow.id]).toEqual(standalone.tokensByRowId[exportRow.id]); }); - it("keeps grammar state across inline comment rows", async () => { + it("keeps grammar state across inline comment rows", () => { const openingRow = makeLine({ id: "template-open", content: "const message = `open", @@ -148,15 +110,16 @@ describe("highlightNativeReviewDiffVisibleRows", () => { commentText: "Review note", }; - const [withComment, contiguous] = await Promise.all([ - highlight([openingRow, commentRow, closingRow, trailingRow]), - highlight([openingRow, closingRow, trailingRow]), - ]); + const withComment = highlight([openingRow, commentRow, closingRow, trailingRow]); + const contiguous = highlight([openingRow, closingRow, trailingRow]); expect(withComment.tokensByRowId).toEqual(contiguous.tokensByRowId); + expect(withComment.tokensByRowId[closingRow.id]?.[0]?.color).toBe( + withComment.tokensByRowId[openingRow.id]?.at(-1)?.color, + ); }); - it("does not join unhighlighted rows across cached gaps", async () => { + it("does not join unhighlighted rows across cached gaps", () => { const trailingRow = makeLine({ id: "trailing-row", content: "export const answer = 42;", @@ -182,120 +145,11 @@ describe("highlightNativeReviewDiffVisibleRows", () => { trailingRow, ]; - const [highlighted, standalone] = await Promise.all([ - highlight(rows, new Set(["template-close"])), - highlight([trailingRow]), - ]); + const highlighted = highlight(rows, new Set(["template-close"])); + const standalone = highlight([trailingRow]); expect(highlighted.tokensByRowId[trailingRow.id]).toEqual( standalone.tokensByRowId[trailingRow.id], ); }); }); - -describe.each(["native", "javascript"] as const)("%s highlighting budgets", (engine) => { - const highlightRows = (rows: ReadonlyArray, signal?: AbortSignal) => - highlightNativeReviewDiffVisibleRows({ - rows, - files: [TYPESCRIPT_FILE], - scheme: "dark", - engine, - firstRowIndex: 0, - lastRowIndex: rows.length - 1, - overscanRows: 0, - signal, - }); - - const line = (id: number, content: string) => - makeLine({ - id: `line-${id}`, - content, - change: "add", - oldLineNumber: null, - newLineNumber: id, - }); - - it("keeps only the long line plain and resumes highlighting after it", async () => { - const longLine = `${"x".repeat(1_001)} /*`; - const rows = [ - line(1, "export const before = 1;"), - line(2, longLine), - { kind: "comment", id: "note", commentText: "Check this", fileId: TYPESCRIPT_FILE.id }, - line(3, "export const inside = 'x';"), - makeHunk("next-hunk"), - line(100, "export const after = 2;"), - ] satisfies ReadonlyArray; - const result = await highlightRows(rows); - - expect(result.engine).toBe(engine); - expect(Object.keys(result.tokensByRowId)).toEqual(["line-1", "line-2", "line-3", "line-100"]); - expect(result.tokensByRowId["line-2"]).toEqual([ - { content: longLine, color: null, fontStyle: null }, - ]); - for (const id of ["line-1", "line-3", "line-100"]) { - expect(result.tokensByRowId[id]?.some((token) => token.color !== null)).toBe(true); - } - expect(tokenization.calls.some((code) => code.includes(longLine))).toBe(false); - }); - - it("highlights the rows after a long line the same regardless of the first window", async () => { - const rows = [ - line(1, "export const before = 1;"), - line(2, `const data = "${"x".repeat(1_050)}";`), - line(3, "export const inside = 'x';"), - line(4, "export const after = 2;"), - ]; - const spanning = await highlightRows(rows); - const afterLongLine = await highlightNativeReviewDiffVisibleRows({ - rows, - files: [TYPESCRIPT_FILE], - scheme: "dark", - engine, - firstRowIndex: 2, - lastRowIndex: 3, - overscanRows: 0, - }); - - for (const id of ["line-3", "line-4"]) { - expect(spanning.tokensByRowId[id]?.some((token) => token.color !== null)).toBe(true); - expect(afterLongLine.tokensByRowId[id]).toEqual(spanning.tokensByRowId[id]); - } - }); - - it("preserves multiline grammar and row mapping across character-limited batches", async () => { - const opening = line(1, "const message = `open"); - const body = Array.from({ length: 40 }, (_, index) => line(index + 2, "inside ".repeat(45))); - const closing = line(42, "closed`; "); - const trailing = line(43, "export const after = 2;"); - const result = await highlightRows([opening, ...body, closing, trailing]); - const calls = [...tokenization.calls]; - const expected = await highlightRows([ - opening, - { ...closing, newLineNumber: 2 }, - { ...trailing, newLineNumber: 3 }, - ]); - - expect(calls.length).toBeGreaterThan(1); - expect(calls.every((code) => code.length <= 8_000)).toBe(true); - expect(result.rowCount).toBe(43); - for (const row of [opening, ...body, closing, trailing]) { - expect(result.tokensByRowId[row.id]?.map((token) => token.content).join("")).toBe( - row.content, - ); - } - expect(result.tokensByRowId[closing.id]).toEqual(expected.tokensByRowId[closing.id]); - expect(result.tokensByRowId[trailing.id]).toEqual(expected.tokensByRowId[trailing.id]); - }); - - it("stops before later batches and publishes no partial result after cancellation", async () => { - const controller = new AbortController(); - tokenization.afterCall = () => controller.abort(); - const rows = Array.from({ length: 30 }, (_, index) => line(index + 1, `// ${"x".repeat(400)}`)); - - const result = await highlightRows(rows, controller.signal); - - expect(tokenization.calls).toHaveLength(1); - expect(result.rowCount).toBe(0); - expect(result.tokensByRowId).toEqual({}); - }); -}); diff --git a/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.ts b/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.ts index c6eccf4747bc..dd94f6fb608b 100644 --- a/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.ts +++ b/apps/mobile/src/features/diffs/nativeReviewDiffHighlighter.ts @@ -1,59 +1,7 @@ -import { createHighlighterCore, type GrammarState, type HighlighterCore } from "@shikijs/core"; -import { createJavaScriptRegexEngine } from "@shikijs/engine-javascript"; -import bashLanguage from "@shikijs/langs/bash"; -import diffLanguage from "@shikijs/langs/diff"; -import javascriptLanguage from "@shikijs/langs/javascript"; -import jsonLanguage from "@shikijs/langs/json"; -import jsxLanguage from "@shikijs/langs/jsx"; -import tsxLanguage from "@shikijs/langs/tsx"; -import typescriptLanguage from "@shikijs/langs/typescript"; -import yamlLanguage from "@shikijs/langs/yaml"; -import * as Schema from "effect/Schema"; - -import type { NativeReviewDiffFile, NativeReviewDiffLanguage } from "./nativeReviewDiffTypes"; +import { highlightCode, type HighlightScheme } from "../../lib/highlights"; +import type { NativeReviewDiffFile } from "./nativeReviewDiffTypes"; import type { NativeReviewDiffRow, NativeReviewDiffToken } from "./nativeReviewDiffSurface"; -export type NativeReviewDiffHighlightScheme = "light" | "dark"; -export type NativeReviewDiffHighlightEngine = "native" | "javascript"; - -export class NativeReviewDiffHighlighterUnavailableError extends Schema.TaggedError()( - "NativeReviewDiffHighlighterUnavailableError", - {}, -) { - override get message(): string { - return "The native review diff highlighter is unavailable in this build."; - } -} - -export const isNativeReviewDiffHighlighterUnavailableError = Schema.is( - NativeReviewDiffHighlighterUnavailableError, -); - -export class NativeReviewDiffHighlighterInitializationError extends Schema.TaggedError()( - "NativeReviewDiffHighlighterInitializationError", - { - requestedEngine: Schema.Literals(["native", "javascript"]), - attemptedEngine: Schema.Literals(["native", "javascript"]), - cause: Schema.Defect(), - }, -) { - override get message(): string { - return `Failed to initialize the ${this.attemptedEngine} review diff highlighter requested as ${this.requestedEngine}.`; - } -} - -export interface NativeReviewDiffHighlighterHandle { - readonly engine: NativeReviewDiffHighlightEngine; - readonly tokenize: ( - code: string, - options: { - readonly lang: NativeReviewDiffLanguage; - readonly theme: string; - readonly signal?: AbortSignal; - }, - ) => Promise>>; -} - interface NativeReviewDiffLineRow extends NativeReviewDiffRow { readonly kind: "line"; readonly fileId: string; @@ -68,283 +16,17 @@ interface IndexedNativeReviewDiffLineRow { export interface HighlightNativeReviewDiffVisibleRowsInput { readonly rows: ReadonlyArray; readonly files: ReadonlyArray; - readonly scheme: NativeReviewDiffHighlightScheme; - readonly engine?: NativeReviewDiffHighlightEngine; + readonly scheme: HighlightScheme; readonly firstRowIndex: number; readonly lastRowIndex: number; readonly overscanRows?: number; readonly maxRows?: number; readonly alreadyHighlightedRowIds?: ReadonlySet; - readonly signal?: AbortSignal; } +// Bounds each token patch the native view parses, not the highlighting itself. const NATIVE_REVIEW_DIFF_VISIBLE_OVERSCAN_ROWS = 160; const NATIVE_REVIEW_DIFF_VISIBLE_MAX_ROWS = 360; -const NATIVE_REVIEW_DIFF_TOKENIZE_MAX_LINE_LENGTH = 1_000; -const NATIVE_REVIEW_DIFF_TOKENIZE_MAX_CHARACTERS = 8_000; - -const NATIVE_REVIEW_DIFF_THEME_NAME_BY_SCHEME = { - dark: "t3-pierre-dark", - light: "t3-pierre-light", -} as const; - -const PIERRE_LIGHT_SHIKI_THEME = { - name: NATIVE_REVIEW_DIFF_THEME_NAME_BY_SCHEME.light, - type: "light" as const, - fg: "#070707", - bg: "#ffffff", - settings: [ - { settings: { foreground: "#070707", background: "#ffffff" } }, - { scope: "comment, punctuation.definition.comment", settings: { foreground: "#84848A" } }, - { - scope: "keyword, storage, storage.type, keyword.operator.expression", - settings: { foreground: "#FC2B73" }, - }, - { - scope: "entity.name.function, support.function, meta.function-call", - settings: { foreground: "#7B43F8" }, - }, - { - scope: "entity.name.type, support.type, support.class", - settings: { foreground: "#C635E4" }, - }, - { - scope: "string, constant.character, punctuation.definition.string", - settings: { foreground: "#199F43" }, - }, - { - scope: "constant.numeric, constant.language, constant.other", - settings: { foreground: "#1CA1C7" }, - }, - { - scope: "variable.parameter, variable.other.readwrite, meta.object-literal.key", - settings: { foreground: "#D47628" }, - }, - { - scope: "entity.name.tag, support.class.component", - settings: { foreground: "#199F43" }, - }, - { - scope: "punctuation, meta.brace, meta.delimiter", - settings: { foreground: "#79797F" }, - }, - { scope: "invalid", settings: { foreground: "#D52C36" } }, - ], -}; - -const PIERRE_DARK_SHIKI_THEME = { - name: NATIVE_REVIEW_DIFF_THEME_NAME_BY_SCHEME.dark, - type: "dark" as const, - fg: "#adadb1", - bg: "#0a0a0a", - settings: [ - { settings: { foreground: "#adadb1", background: "#0a0a0a" } }, - { scope: "comment, punctuation.definition.comment", settings: { foreground: "#84848A" } }, - { - scope: "keyword, storage, storage.type, keyword.operator.expression", - settings: { foreground: "#FF678D" }, - }, - { - scope: "entity.name.function, support.function, meta.function-call", - settings: { foreground: "#9D6AFB" }, - }, - { - scope: "entity.name.type, support.type, support.class", - settings: { foreground: "#D568EA" }, - }, - { - scope: "string, constant.character, punctuation.definition.string", - settings: { foreground: "#5ECC71" }, - }, - { - scope: "constant.numeric, constant.language, constant.other", - settings: { foreground: "#68CDF2" }, - }, - { - scope: "variable.parameter, variable.other.readwrite, meta.object-literal.key", - settings: { foreground: "#FFA359" }, - }, - { - scope: "entity.name.tag, support.class.component", - settings: { foreground: "#5ECC71" }, - }, - { - scope: "punctuation, meta.brace, meta.delimiter", - settings: { foreground: "#79797F" }, - }, - { scope: "invalid", settings: { foreground: "#FF6762" } }, - ], -}; - -const NATIVE_REVIEW_DIFF_SHIKI_THEMES = [ - PIERRE_LIGHT_SHIKI_THEME, - PIERRE_DARK_SHIKI_THEME, -] satisfies Parameters[0]["themes"]; - -const NATIVE_REVIEW_DIFF_LANGUAGES = [ - bashLanguage, - diffLanguage, - javascriptLanguage, - jsonLanguage, - jsxLanguage, - tsxLanguage, - typescriptLanguage, - yamlLanguage, -] satisfies Parameters[0]["langs"]; - -let nativeHighlighterPromise: Promise | null = null; -let javascriptHighlighterPromise: Promise | null = null; - -function waitForNextFrame(): Promise { - return new Promise((resolve) => setTimeout(resolve, 0)); -} - -function normalizeTokens( - tokenLines: ReadonlyArray>, -): ReadonlyArray> { - return tokenLines.map((line) => - line.map((token) => ({ - content: token.content, - color: token.color ?? null, - fontStyle: token.fontStyle ?? null, - })), - ); -} - -function createHighlighterHandle( - highlighter: HighlighterCore, - engine: NativeReviewDiffHighlightEngine, -): NativeReviewDiffHighlighterHandle { - return { - engine, - async tokenize(code, { lang, theme, signal }) { - const lines = code.split("\n"); - const highlighted: Array> = []; - let grammarState: GrammarState | undefined; - let start = 0; - - while (start < lines.length) { - if (signal?.aborted) return []; - - // Skipping this line leaves its ending grammar state unknown. Resume - // from a fresh state rather than leaving the rest of the segment plain: - // highlighted rows are cached for the sheet's lifetime, so a plain tail - // would stick, and which rows it covered would depend on where the - // first visible window happened to start. - if (lines[start]!.length > NATIVE_REVIEW_DIFF_TOKENIZE_MAX_LINE_LENGTH) { - highlighted.push([{ content: lines[start] || " ", color: null, fontStyle: null }]); - grammarState = undefined; - start += 1; - continue; - } - - let end = start; - let characters = 0; - while (end < lines.length) { - const length = lines[end]!.length; - const nextCharacters = characters + length + (end > start ? 1 : 0); - if ( - length > NATIVE_REVIEW_DIFF_TOKENIZE_MAX_LINE_LENGTH || - nextCharacters > NATIVE_REVIEW_DIFF_TOKENIZE_MAX_CHARACTERS - ) { - break; - } - characters = nextCharacters; - end += 1; - } - - const tokens = highlighter.codeToTokensBase(lines.slice(start, end).join("\n"), { - lang, - theme, - grammarState, - }); - grammarState = highlighter.getLastGrammarState(tokens); - highlighted.push(...normalizeTokens(tokens)); - start = end; - if (start < lines.length) await waitForNextFrame(); - } - - return signal?.aborted ? [] : highlighted; - }, - }; -} - -async function createNativeReviewDiffHighlighter(): Promise { - const nativeEngineModule = await import("react-native-shiki-engine"); - if (!nativeEngineModule.isNativeEngineAvailable()) { - throw new NativeReviewDiffHighlighterUnavailableError(); - } - - const highlighter = await createHighlighterCore({ - langs: NATIVE_REVIEW_DIFF_LANGUAGES, - themes: NATIVE_REVIEW_DIFF_SHIKI_THEMES, - engine: nativeEngineModule.createNativeEngine(), - }); - - return createHighlighterHandle(highlighter, "native"); -} - -async function createJavascriptReviewDiffHighlighter(): Promise { - const highlighter: HighlighterCore = await createHighlighterCore({ - langs: NATIVE_REVIEW_DIFF_LANGUAGES, - themes: NATIVE_REVIEW_DIFF_SHIKI_THEMES, - engine: createJavaScriptRegexEngine(), - }); - - return createHighlighterHandle(highlighter, "javascript"); -} - -export async function getNativeReviewDiffHighlighter( - engine: NativeReviewDiffHighlightEngine = "native", -): Promise { - if (engine === "javascript") { - try { - javascriptHighlighterPromise ??= createJavascriptReviewDiffHighlighter(); - return await javascriptHighlighterPromise; - } catch (cause) { - javascriptHighlighterPromise = null; - throw new NativeReviewDiffHighlighterInitializationError({ - requestedEngine: engine, - attemptedEngine: "javascript", - cause, - }); - } - } - - nativeHighlighterPromise ??= createNativeReviewDiffHighlighter() - .catch(async (cause: unknown) => { - const nativeError = isNativeReviewDiffHighlighterUnavailableError(cause) - ? cause - : new NativeReviewDiffHighlighterInitializationError({ - requestedEngine: engine, - attemptedEngine: "native", - cause, - }); - console.warn("[debug-native-diff] native highlighter unavailable", { - error: nativeError, - }); - try { - javascriptHighlighterPromise ??= createJavascriptReviewDiffHighlighter(); - return await javascriptHighlighterPromise; - } catch (fallbackCause) { - javascriptHighlighterPromise = null; - throw new NativeReviewDiffHighlighterInitializationError({ - requestedEngine: engine, - attemptedEngine: "javascript", - cause: new AggregateError( - [nativeError, fallbackCause], - "Native and JavaScript review diff highlighter initialization failed.", - { cause: nativeError }, - ), - }); - } - }) - .catch((error) => { - nativeHighlighterPromise = null; - throw error; - }); - return await nativeHighlighterPromise; -} function isHighlightableLineRow(row: NativeReviewDiffRow): row is NativeReviewDiffLineRow { return row.kind === "line" && typeof row.fileId === "string" && typeof row.content === "string"; @@ -402,10 +84,6 @@ function canShareGrammarContext( ); } -function createFileMap(files: ReadonlyArray) { - return new Map(files.map((file) => [file.id, file])); -} - function clampRowIndex(index: number, rows: ReadonlyArray) { if (rows.length === 0) { return 0; @@ -414,28 +92,13 @@ function clampRowIndex(index: number, rows: ReadonlyArray) return Math.min(rows.length - 1, Math.max(0, Math.floor(index))); } -function makePlainTokenFallback( - row: NativeReviewDiffLineRow, -): ReadonlyArray { - return [{ content: row.content || " ", color: null, fontStyle: null }]; -} - -export async function highlightNativeReviewDiffVisibleRows( +export function highlightNativeReviewDiffVisibleRows( input: HighlightNativeReviewDiffVisibleRowsInput, -): Promise<{ - readonly engine: NativeReviewDiffHighlightEngine; +): { readonly tokensByRowId: Record>; readonly rowCount: number; - readonly durationMs: number; -}> { - const highlighter = await getNativeReviewDiffHighlighter(input.engine ?? "native"); - if (input.signal?.aborted) { - return { engine: highlighter.engine, tokensByRowId: {}, rowCount: 0, durationMs: 0 }; - } - - const startedAt = performance.now(); - const theme = NATIVE_REVIEW_DIFF_THEME_NAME_BY_SCHEME[input.scheme]; - const fileMap = createFileMap(input.files); +} { + const fileMap = new Map(input.files.map((file) => [file.id, file])); const overscanRows = input.overscanRows ?? NATIVE_REVIEW_DIFF_VISIBLE_OVERSCAN_ROWS; const maxRows = input.maxRows ?? NATIVE_REVIEW_DIFF_VISIBLE_MAX_ROWS; const startIndex = clampRowIndex(input.firstRowIndex - overscanRows, input.rows); @@ -458,71 +121,33 @@ export async function highlightNativeReviewDiffVisibleRows( } } + // Rows that continue each other's source are highlighted together so + // multi-line constructs keep their colors. const tokensByRowId: Record> = {}; - let segmentRows: IndexedNativeReviewDiffLineRow[] = []; - let segmentFile: NativeReviewDiffFile | undefined; - let charactersSinceYield = 0; - - const flushSegment = async () => { - if (!segmentFile || segmentRows.length === 0 || input.signal?.aborted) { - segmentRows = []; - segmentFile = undefined; - return; - } - - const code = segmentRows.map(({ row }) => row.content).join("\n"); - if ( - charactersSinceYield > 0 && - charactersSinceYield + code.length > NATIVE_REVIEW_DIFF_TOKENIZE_MAX_CHARACTERS - ) { - await waitForNextFrame(); - charactersSinceYield = 0; - if (input.signal?.aborted) return; + let segment: IndexedNativeReviewDiffLineRow[] = []; + const flushSegment = () => { + const file = segment[0] ? fileMap.get(segment[0].row.fileId) : undefined; + if (file) { + const tokenLines = highlightCode( + segment.map(({ row }) => row.content).join("\n"), + file.language, + input.scheme, + ); + segment.forEach(({ row }, index) => { + tokensByRowId[row.id] = tokenLines[index] ?? []; + }); } - const tokenLines = await highlighter.tokenize(code, { - lang: segmentFile.language, - theme, - signal: input.signal, - }); - charactersSinceYield += code.length; - segmentRows.forEach(({ row }, rowIndex) => { - tokensByRowId[row.id] = tokenLines[rowIndex] ?? makePlainTokenFallback(row); - }); - segmentRows = []; - segmentFile = undefined; + segment = []; }; for (const selectedRow of selectedRows) { - if (input.signal?.aborted) break; - const { row } = selectedRow; - const file = fileMap.get(row.fileId); - if (!file) { - continue; + const previousRow = segment.at(-1); + if (previousRow && !canShareGrammarContext(previousRow, selectedRow, input.rows)) { + flushSegment(); } - - const previousRow = segmentRows.at(-1); - if ( - segmentFile && - (segmentFile.id !== file.id || - (previousRow !== undefined && - !canShareGrammarContext(previousRow, selectedRow, input.rows))) - ) { - await flushSegment(); - } - - segmentFile = file; - segmentRows.push(selectedRow); - } - await flushSegment(); - - if (input.signal?.aborted) { - return { engine: highlighter.engine, tokensByRowId: {}, rowCount: 0, durationMs: 0 }; + segment.push(selectedRow); } + flushSegment(); - return { - engine: highlighter.engine, - tokensByRowId, - rowCount: selectedRows.length, - durationMs: Math.round(performance.now() - startedAt), - }; + return { tokensByRowId, rowCount: selectedRows.length }; } diff --git a/apps/mobile/src/features/diffs/nativeReviewDiffTypes.ts b/apps/mobile/src/features/diffs/nativeReviewDiffTypes.ts index fe34352cfa15..24ce1667aeeb 100644 --- a/apps/mobile/src/features/diffs/nativeReviewDiffTypes.ts +++ b/apps/mobile/src/features/diffs/nativeReviewDiffTypes.ts @@ -1,17 +1,8 @@ -export type NativeReviewDiffLanguage = - | "bash" - | "diff" - | "javascript" - | "json" - | "jsx" - | "tsx" - | "typescript" - | "yaml"; - export interface NativeReviewDiffFile { readonly id: string; readonly path: string; - readonly language: NativeReviewDiffLanguage; + /** A @pierre/highlights language name. */ + readonly language: string; readonly additions: number; readonly deletions: number; } diff --git a/apps/mobile/src/features/files/SourceFileSurface.tsx b/apps/mobile/src/features/files/SourceFileSurface.tsx index d1d92092a550..f5f6cec69234 100644 --- a/apps/mobile/src/features/files/SourceFileSurface.tsx +++ b/apps/mobile/src/features/files/SourceFileSurface.tsx @@ -22,7 +22,7 @@ import { } from "../diffs/nativeReviewDiffSurface"; import { createNativeReviewDiffTheme } from "../review/nativeReviewDiffAdapter"; import { REVIEW_MONO_FONT_FAMILY, renderVisibleWhitespace } from "../review/reviewDiffRendering"; -import type { ReviewHighlightedToken } from "../review/shikiReviewHighlighter"; +import type { HighlightedToken } from "../../lib/highlights"; import { cn } from "../../lib/cn"; import type { ResolvedMobileCodeSurface } from "../../lib/appearancePreferences"; import { useAppearanceCodeSurface } from "../settings/appearance/useAppearanceCodeSurface"; @@ -54,7 +54,7 @@ const HighlightedSourceLine = function HighlightedSourceLine(props: { readonly codeSurface: ResolvedMobileCodeSurface; readonly index: number; readonly line: string; - readonly tokens: ReadonlyArray | null; + readonly tokens: ReadonlyArray | null; readonly highlighted: boolean; readonly wordBreak: boolean; }) { diff --git a/apps/mobile/src/features/files/nativeSourceFileAdapter.ts b/apps/mobile/src/features/files/nativeSourceFileAdapter.ts index f1dbefdc383b..a85328fbb26e 100644 --- a/apps/mobile/src/features/files/nativeSourceFileAdapter.ts +++ b/apps/mobile/src/features/files/nativeSourceFileAdapter.ts @@ -5,7 +5,7 @@ import type { } from "../diffs/nativeReviewDiffSurface"; import type { ResolvedMobileCodeSurface } from "../../lib/appearancePreferences"; import { MOBILE_CODE_SURFACE, MOBILE_TYPOGRAPHY } from "../../lib/typography"; -import type { SourceHighlightTokens } from "./sourceHighlightingState"; +import type { HighlightedLines } from "../../lib/highlights"; export const NATIVE_SOURCE_CONTENT_WIDTH = 32_000; @@ -54,7 +54,7 @@ export function buildNativeSourceRows( } export function buildNativeSourceTokens( - tokenLines: SourceHighlightTokens | null, + tokenLines: HighlightedLines | null, ): Readonly>> { if (tokenLines === null) { return {}; diff --git a/apps/mobile/src/features/files/preload-workspace-file.ts b/apps/mobile/src/features/files/preload-workspace-file.ts index 4ae4f507caa0..5cd2003d0114 100644 --- a/apps/mobile/src/features/files/preload-workspace-file.ts +++ b/apps/mobile/src/features/files/preload-workspace-file.ts @@ -12,7 +12,7 @@ import { projectEnvironment } from "../../state/projects"; import { isVideoPreviewFile } from "./filePath"; import { prepareSourceFileDocument } from "./source-file-document"; import { sourceHighlightAtom } from "./sourceHighlightingState"; -import type { ReviewDiffTheme } from "../review/shikiReviewHighlighter"; +import type { HighlightScheme } from "../../lib/highlights"; const inFlightPreloads = new Map>(); const MAX_HIGHLIGHT_PRELOAD_CHARACTERS = 256 * 1024; @@ -29,7 +29,7 @@ export function preloadWorkspaceFileContents(input: { readonly cwd: string; readonly environmentId: EnvironmentId; readonly relativePath: string; - readonly theme: ReviewDiffTheme; + readonly theme: HighlightScheme; }): void { if ( !readEnvironmentScope(input.environmentId, AuthFilesystemReadScope) || diff --git a/apps/mobile/src/features/files/source-file-document.ts b/apps/mobile/src/features/files/source-file-document.ts index 12f1fce099cf..9a858a7a081f 100644 --- a/apps/mobile/src/features/files/source-file-document.ts +++ b/apps/mobile/src/features/files/source-file-document.ts @@ -1,4 +1,4 @@ -import type { ReviewHighlightedToken } from "../review/shikiReviewHighlighter"; +import type { HighlightedToken } from "../../lib/highlights"; import { buildNativeSourceRows } from "./nativeSourceFileAdapter"; const MAX_CACHED_DOCUMENTS = 8; @@ -57,7 +57,7 @@ export function prepareSourceFileDocument(contents: string): SourceFileDocument // A selectable document cannot virtualize its rows. Cap React spans instead; large // attachments remain fully selectable as one plain string, including every newline. export function boundedSelectableSourceTokens( - tokens: ReadonlyArray> | null, + tokens: ReadonlyArray> | null, ): typeof tokens { if (!tokens) return null; let spans = tokens.length; diff --git a/apps/mobile/src/features/files/sourceHighlightingState.ts b/apps/mobile/src/features/files/sourceHighlightingState.ts index 4f591bc6e622..2a2db842ec4b 100644 --- a/apps/mobile/src/features/files/sourceHighlightingState.ts +++ b/apps/mobile/src/features/files/sourceHighlightingState.ts @@ -2,49 +2,41 @@ import * as Data from "effect/Data"; import * as Effect from "effect/Effect"; import { Atom } from "effect/reactivity"; -import { - highlightSourceFile, - type ReviewDiffTheme, - type ReviewHighlightedToken, -} from "../review/shikiReviewHighlighter"; +import { resolveHighlightLanguage } from "../../lib/highlightLanguage"; +import { highlightCode, type HighlightedLines, type HighlightScheme } from "../../lib/highlights"; const SOURCE_HIGHLIGHT_IDLE_TTL_MS = 5 * 60_000; export interface SourceHighlightInput { readonly path: string; readonly contents: string; - readonly theme: ReviewDiffTheme; + readonly theme: HighlightScheme; } -export type SourceHighlightTokens = ReadonlyArray>; - -type SourceHighlighter = (input: SourceHighlightInput) => Promise; - class SourceHighlightCacheKey extends Data.Class {} class SourceHighlightError extends Data.TaggedError("SourceHighlightError")<{ readonly cause: unknown; }> {} -export function createSourceHighlightAtomFamily(options?: { - readonly highlight?: SourceHighlighter; - readonly idleTtlMs?: number; -}) { - const highlight = options?.highlight ?? highlightSourceFile; - const idleTtlMs = options?.idleTtlMs ?? SOURCE_HIGHLIGHT_IDLE_TTL_MS; - const family = Atom.family((request: SourceHighlightCacheKey) => - Atom.make( - Effect.tryPromise({ - try: () => highlight(request), - catch: (cause) => new SourceHighlightError({ cause }), - }), - ).pipe( - Atom.setIdleTTL(idleTtlMs), - Atom.withLabel(`mobile:source-highlight:${request.theme}:${request.path}`), - ), - ); - - return (input: SourceHighlightInput) => family(new SourceHighlightCacheKey(input)); -} - -export const sourceHighlightAtom = createSourceHighlightAtomFamily(); +// Highlighting is synchronous, so a cold atom resolves on its first read. The +// family keeps results for files the user moves between. +const sourceHighlightFamily = Atom.family((request: SourceHighlightCacheKey) => + Atom.make( + Effect.try({ + try: (): HighlightedLines => + highlightCode( + request.contents, + resolveHighlightLanguage({ path: request.path }), + request.theme, + ), + catch: (cause) => new SourceHighlightError({ cause }), + }), + ).pipe( + Atom.setIdleTTL(SOURCE_HIGHLIGHT_IDLE_TTL_MS), + Atom.withLabel(`mobile:source-highlight:${request.theme}:${request.path}`), + ), +); + +export const sourceHighlightAtom = (input: SourceHighlightInput) => + sourceHighlightFamily(new SourceHighlightCacheKey(input)); diff --git a/apps/mobile/src/features/review/ReviewCommentComposerSheet.tsx b/apps/mobile/src/features/review/ReviewCommentComposerSheet.tsx index 285be7d937c5..8e2e5f185e13 100644 --- a/apps/mobile/src/features/review/ReviewCommentComposerSheet.tsx +++ b/apps/mobile/src/features/review/ReviewCommentComposerSheet.tsx @@ -1,7 +1,7 @@ import { useNavigation, type StaticScreenProps } from "@react-navigation/native"; import { TextInputWrapper } from "expo-paste-input"; import type { EnvironmentId, ThreadId } from "@t3tools/contracts"; -import { useCallback, useEffect, useMemo, useState } from "react"; +import { useCallback, useMemo, useState } from "react"; import { Platform, Pressable, ScrollView, View, useWindowDimensions } from "react-native"; import { KeyboardAvoidingView, KeyboardStickyView } from "react-native-keyboard-controller"; import { useSafeAreaInsets } from "react-native-safe-area-context"; @@ -27,10 +27,7 @@ import { import { useAppearanceCodeSurface } from "../settings/appearance/useAppearanceCodeSurface"; import { useAppearancePreferences } from "../settings/appearance/AppearancePreferencesProvider"; import { changeTone, DiffTokenText, ReviewChangeBar } from "./reviewDiffRendering"; -import { - highlightReviewSelectedLines, - type ReviewHighlightedToken, -} from "./shikiReviewHighlighter"; +import { highlightReviewSelectedLines } from "./highlightReviewSelectedLines"; const REVIEW_COMMENT_PREVIEW_MAX_LINES = 5; @@ -49,9 +46,6 @@ export function ReviewCommentComposerSheet(props: ReviewCommentComposerSheetProp const { codeSurface } = useAppearanceCodeSurface(); const { environmentId, threadId } = props.route.params; const [commentText, setCommentText] = useState(""); - const [highlightedLinesById, setHighlightedLinesById] = useState< - Record> - >({}); const [attachments, setAttachments] = useState>([]); const [previewFile, setPreviewFile] = useState(null); @@ -59,6 +53,17 @@ export function ReviewCommentComposerSheet(props: ReviewCommentComposerSheetProp () => (target ? getSelectedReviewCommentLines(target) : []), [target], ); + const highlightedLinesById = useMemo( + () => + target + ? highlightReviewSelectedLines({ + filePath: target.filePath, + lines: selectedLines, + theme: selectedTheme, + }) + : {}, + [selectedLines, selectedTheme, target], + ); const firstLine = selectedLines[0] ?? null; const lastLine = selectedLines[selectedLines.length - 1] ?? null; const firstNumber = firstLine ? getReviewUnifiedLineNumber(firstLine) : null; @@ -98,34 +103,6 @@ export function ReviewCommentComposerSheet(props: ReviewCommentComposerSheetProp })(); }); - useEffect(() => { - if (!target || selectedLines.length === 0) { - setHighlightedLinesById({}); - return; - } - - let cancelled = false; - void highlightReviewSelectedLines({ - filePath: target.filePath, - lines: selectedLines, - theme: selectedTheme, - }) - .then((next) => { - if (!cancelled) { - setHighlightedLinesById(next); - } - }) - .catch(() => { - if (!cancelled) { - setHighlightedLinesById({}); - } - }); - - return () => { - cancelled = true; - }; - }, [selectedLines, selectedTheme, target]); - async function handlePickImages(): Promise { const result = await pickComposerImages({ existingCount: attachments.length }); if (result.images.length > 0) { diff --git a/apps/mobile/src/features/review/highlightReviewSelectedLines.ts b/apps/mobile/src/features/review/highlightReviewSelectedLines.ts new file mode 100644 index 000000000000..5cc7d18ddb5f --- /dev/null +++ b/apps/mobile/src/features/review/highlightReviewSelectedLines.ts @@ -0,0 +1,111 @@ +import { resolveHighlightLanguage } from "../../lib/highlightLanguage"; +import { highlightCode, type HighlightScheme } from "../../lib/highlights"; +import type { ReviewHighlightedToken } from "./reviewHighlightedToken.types"; +import type { ReviewRenderableLineRow } from "./reviewModel"; +import { applyDiffRangesToTokens, computeWordAltDiffRanges } from "./reviewWordDiffs"; + +function applyWordAltDiffHighlightsToSelectedLines(input: { + readonly lines: ReadonlyArray; + readonly tokenMap: Record>; +}): Record> { + const additionLineByTokenIndex = new Map(); + const deletionLineByTokenIndex = new Map(); + + input.lines.forEach((line) => { + if (line.change === "add" && line.additionTokenIndex !== null) { + additionLineByTokenIndex.set(line.additionTokenIndex, line); + } + if (line.change === "delete" && line.deletionTokenIndex !== null) { + deletionLineByTokenIndex.set(line.deletionTokenIndex, line); + } + }); + + const nextTokenMap = { ...input.tokenMap }; + const processedPairs = new Set(); + + input.lines.forEach((line) => { + if (line.change === "context" || !line.comparison) { + return; + } + + const pairedDeletionLine = + line.change === "delete" + ? line + : line.comparison.change === "delete" + ? deletionLineByTokenIndex.get(line.comparison.tokenIndex) + : undefined; + const pairedAdditionLine = + line.change === "add" + ? line + : line.comparison.change === "add" + ? additionLineByTokenIndex.get(line.comparison.tokenIndex) + : undefined; + + if ( + !pairedDeletionLine || + !pairedAdditionLine || + pairedDeletionLine.deletionTokenIndex === null || + pairedAdditionLine.additionTokenIndex === null + ) { + return; + } + + const pairKey = `${pairedDeletionLine.deletionTokenIndex}:${pairedAdditionLine.additionTokenIndex}`; + if (processedPairs.has(pairKey)) { + return; + } + processedPairs.add(pairKey); + + const ranges = computeWordAltDiffRanges({ + deletionLine: pairedDeletionLine.content, + additionLine: pairedAdditionLine.content, + }); + + if (ranges.deletion.length > 0) { + nextTokenMap[pairedDeletionLine.id] = applyDiffRangesToTokens( + nextTokenMap[pairedDeletionLine.id] ?? [], + ranges.deletion, + ); + } + if (ranges.addition.length > 0) { + nextTokenMap[pairedAdditionLine.id] = applyDiffRangesToTokens( + nextTokenMap[pairedAdditionLine.id] ?? [], + ranges.addition, + ); + } + }); + + return nextTokenMap; +} + +export function highlightReviewSelectedLines(input: { + readonly filePath: string; + readonly lines: ReadonlyArray; + readonly theme: HighlightScheme; +}): Record> { + if (input.lines.length === 0) { + return {}; + } + + // Deleted and added lines each read as their own continuous source. + const language = resolveHighlightLanguage({ path: input.filePath }); + const deletionLines = input.lines.filter((line) => line.change === "delete"); + const additionLikeLines = input.lines.filter((line) => line.change !== "delete"); + const highlightSide = (lines: ReadonlyArray) => + highlightCode(lines.map((line) => line.content).join("\n"), language, input.theme); + const deletionTokens = highlightSide(deletionLines); + const additionTokens = highlightSide(additionLikeLines); + + const tokenMap: Record> = {}; + deletionLines.forEach((line, index) => { + tokenMap[line.id] = deletionTokens[index] ?? []; + }); + additionLikeLines.forEach((line, index) => { + tokenMap[line.id] = additionTokens[index] ?? []; + }); + + return applyWordAltDiffHighlightsToSelectedLines({ + lines: input.lines, + tokenMap, + }); +} diff --git a/apps/mobile/src/features/review/incrementalSnippet.test.ts b/apps/mobile/src/features/review/incrementalSnippet.test.ts deleted file mode 100644 index ad3a6b49c84e..000000000000 --- a/apps/mobile/src/features/review/incrementalSnippet.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { createHighlighterCore } from "@shikijs/core"; -import { createJavaScriptRegexEngine } from "@shikijs/engine-javascript"; -import typescript from "@shikijs/langs/typescript"; -import dark from "@shikijs/themes/github-dark-default"; -import { describe, expect, it } from "vite-plus/test"; - -import { createIncrementalSnippet } from "./incrementalSnippet"; -import { highlightCodeSnippet } from "./shikiReviewHighlighter"; - -const highlighter = await createHighlighterCore({ - langs: [typescript], - themes: [dark], - engine: createJavaScriptRegexEngine(), -}); -const rendered = (lines: ReturnType) => - lines.map((line) => line.map(({ content, color, fontStyle }) => ({ content, color, fontStyle }))); -const options = { lang: "typescript", theme: "github-dark-default" }; - -describe("incremental snippet highlighting", () => { - it("matches full highlighting through partial lines, multiline syntax, edits and truncation", async () => { - const highlight = createIncrementalSnippet(highlighter, options.lang, options.theme); - const source = "/* comment\nstill comment */\nconst text = `first\nsecond ${42}`;\n"; - for (let end = 1; end <= source.length; end++) { - const code = source.slice(0, end); - expect(rendered(highlight.read(code) ?? (await highlight(code)))).toEqual( - rendered(highlighter.codeToTokensBase(code, options)), - ); - } - for (const code of ['const other = "new";\n', "const other", source, source.slice(0, 20)]) { - expect(rendered(highlight.read(code) ?? (await highlight(code)))).toEqual( - rendered(highlighter.codeToTokensBase(code, options)), - ); - } - }); - - it("carries grammar state across batches and overlapping updates", async () => { - const highlight = createIncrementalSnippet(highlighter, options.lang, options.theme); - const code = "/*\n" + "still a comment\n".repeat(410) + "*/\nconst value = 42;"; - const first = highlight(code); - const next = highlight("const changed = true;\n"); - expect(rendered(await first)).toEqual(rendered(highlighter.codeToTokensBase(code, options))); - expect(rendered(await next)).toEqual( - rendered(highlighter.codeToTokensBase("const changed = true;\n", options)), - ); - const last = 'const changed = true;\nconst tail = "ok";'; - expect(rendered(await highlight(last))).toEqual( - rendered(highlighter.codeToTokensBase(last, options)), - ); - }); - - it("resets session on language, theme, CRLF, long-line and empty input changes", async () => { - const session = {}; - const cases = [ - { code: "/* hello\nworld */", language: "ts", theme: "dark" as const }, - { code: "/* hello\nworld */\nconst n = 3;", language: "ts", theme: "light" as const }, - { code: "hello\nworld", language: "text", theme: "light" as const }, - { code: "const n = 2;\r\nconst m = 3;", language: "ts", theme: "dark" as const }, - { code: "a".repeat(1100), language: "ts", theme: "dark" as const }, - { code: "", language: "ts", theme: "dark" as const }, - { code: "const fresh = true;\n", language: "ts", theme: "dark" as const }, - ]; - for (const input of cases) - expect(await highlightCodeSnippet({ ...input, session })).toEqual( - await highlightCodeSnippet(input), - ); - }); -}); diff --git a/apps/mobile/src/features/review/incrementalSnippet.ts b/apps/mobile/src/features/review/incrementalSnippet.ts deleted file mode 100644 index 6c6e604ecd14..000000000000 --- a/apps/mobile/src/features/review/incrementalSnippet.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { HighlighterCore } from "@shikijs/core"; - -export function createIncrementalSnippet( - highlighter: HighlighterCore, - language: string, - theme: string, -) { - const options = { lang: language, theme }; - let cached: - | { - prefix: string; - tokens: ReturnType; - state: ReturnType; - } - | undefined; - let revision = 0; - - function* tokenize(code: string) { - const currentRevision = ++revision; - const previous = cached && code.startsWith(cached.prefix) ? cached : undefined; - const end = code.lastIndexOf("\n") + 1; - let state = previous?.state; - const tokens = [...(previous?.tokens ?? [])]; - const completed = code.slice(previous?.prefix.length ?? 0, end); - if (completed) { - const lines = completed.slice(0, -1).split("\n"); - for (let offset = 0; offset < lines.length; offset += 200) { - const batch = highlighter.codeToTokensBase(lines.slice(offset, offset + 200).join("\n"), { - ...options, - ...(state ? { grammarState: state } : {}), - }); - state = highlighter.getLastGrammarState(batch); - tokens.push(...batch); - if (offset + 200 < lines.length) yield; - } - } - if (currentRevision === revision) { - cached = state ? { prefix: code.slice(0, end), tokens, state } : undefined; - } - return [ - ...tokens, - ...highlighter.codeToTokensBase(code.slice(end), { - ...options, - ...(state ? { grammarState: state } : {}), - }), - ]; - } - const highlight = async (code: string) => { - const work = tokenize(code); - let next = work.next(); - while (!next.done) { - await new Promise((resolve) => setTimeout(resolve, 0)); - next = work.next(); - } - return next.value; - }; - highlight.read = (code: string) => { - if (!cached || !code.startsWith(cached.prefix)) return undefined; - const tail = code.slice(cached.prefix.length); - if (tail.length > 2_000 || tail.split("\n").length > 200) return undefined; - const next = tokenize(code).next(); - return next.done ? next.value : undefined; - }; - return highlight; -} diff --git a/apps/mobile/src/features/review/nativeReviewDiffAdapter.ts b/apps/mobile/src/features/review/nativeReviewDiffAdapter.ts index 7e10d2024ced..d49302764b1c 100644 --- a/apps/mobile/src/features/review/nativeReviewDiffAdapter.ts +++ b/apps/mobile/src/features/review/nativeReviewDiffAdapter.ts @@ -1,11 +1,9 @@ import type { NativeReviewDiffRow, NativeReviewDiffTheme } from "../diffs/nativeReviewDiffSurface"; -import type { - NativeReviewDiffFile, - NativeReviewDiffLanguage, -} from "../diffs/nativeReviewDiffTypes"; +import type { NativeReviewDiffFile } from "../diffs/nativeReviewDiffTypes"; import * as Arr from "effect/Array"; import { pipe } from "effect/Function"; import type { ResolvedMobileCodeSurface } from "../../lib/appearancePreferences"; +import { resolveHighlightLanguage } from "../../lib/highlightLanguage"; import { type MobileThemeId, type MobileThemeVariables } from "../../lib/mobileTheme"; import { getMobileTerminalTheme, type TerminalAppearanceScheme } from "../terminal/terminalTheme"; import { computeWordAltDiffRanges } from "./reviewWordDiffs"; @@ -236,35 +234,6 @@ function mapChangeType(file: ReviewRenderableFile): NativeReviewDiffRow["changeT } } -function getLanguageForPath( - filePath: string, - languageHint: string | null, -): NativeReviewDiffLanguage { - const hinted = languageHint?.toLowerCase(); - if (hinted === "typescript" || hinted === "tsx" || hinted === "javascript" || hinted === "jsx") { - return hinted; - } - if (hinted === "json" || hinted === "yaml" || hinted === "bash" || hinted === "diff") { - return hinted; - } - - const normalizedPath = filePath.toLowerCase(); - if (normalizedPath.endsWith(".tsx")) return "tsx"; - if (normalizedPath.endsWith(".ts")) return "typescript"; - if (normalizedPath.endsWith(".jsx")) return "jsx"; - if (normalizedPath.endsWith(".js") || normalizedPath.endsWith(".cjs")) return "javascript"; - if (normalizedPath.endsWith(".json") || normalizedPath.endsWith(".jsonc")) return "json"; - if (normalizedPath.endsWith(".yml") || normalizedPath.endsWith(".yaml")) return "yaml"; - if ( - normalizedPath.endsWith(".sh") || - normalizedPath.includes("/bin/") || - normalizedPath.includes("shell") - ) { - return "bash"; - } - return "diff"; -} - function createNoticeRow(fileId: string, suffix: string, text: string): NativeReviewDiffRow { return { kind: "notice", @@ -548,7 +517,7 @@ function prepareNativeReviewDiffData(parsedDiff: ReviewParsedDiff): PreparedNati const files = parsedDiff.files.map((file) => ({ id: file.id, path: file.path, - language: getLanguageForPath(file.path, file.languageHint), + language: resolveHighlightLanguage({ language: file.languageHint, path: file.path }), additions: file.additions, deletions: file.deletions, })); diff --git a/apps/mobile/src/features/review/reviewDiffBridgeKeys.ts b/apps/mobile/src/features/review/reviewDiffBridgeKeys.ts index d6f74057b7c5..9ac390740ca1 100644 --- a/apps/mobile/src/features/review/reviewDiffBridgeKeys.ts +++ b/apps/mobile/src/features/review/reviewDiffBridgeKeys.ts @@ -1,4 +1,4 @@ -import type { NativeReviewDiffHighlightScheme } from "../diffs/nativeReviewDiffHighlighter"; +import type { HighlightScheme } from "../../lib/highlights"; function hashReviewDiffKey(diff: string | null | undefined): string { if (!diff) { @@ -16,7 +16,7 @@ function hashReviewDiffKey(diff: string | null | undefined): string { export function buildNativeReviewTokensResetKey(input: { readonly threadKey: string | null; readonly sectionId: string | null; - readonly scheme: NativeReviewDiffHighlightScheme; + readonly scheme: HighlightScheme; readonly diff: string | null | undefined; readonly fileCount: number; readonly rowCount: number; diff --git a/apps/mobile/src/features/review/reviewHighlighterEngine.ts b/apps/mobile/src/features/review/reviewHighlighterEngine.ts deleted file mode 100644 index 4287685376dc..000000000000 --- a/apps/mobile/src/features/review/reviewHighlighterEngine.ts +++ /dev/null @@ -1,31 +0,0 @@ -export type ReviewHighlighterEnginePreference = "javascript" | "native"; -export type ReviewHighlighterEngine = "javascript" | "native"; - -export function resolveReviewHighlighterEnginePreference( - value: string | undefined, -): ReviewHighlighterEnginePreference { - switch (value) { - case "js": - case "javascript": - return "javascript"; - case "native": - return "native"; - default: - return "native"; - } -} - -export function resolveReviewHighlighterEngine( - preference: ReviewHighlighterEnginePreference, - nativeAvailable: boolean, -): ReviewHighlighterEngine { - if (preference === "javascript") { - return "javascript"; - } - - if (nativeAvailable) { - return "native"; - } - - return "javascript"; -} diff --git a/apps/mobile/src/features/review/shikiReviewHighlighter.test.ts b/apps/mobile/src/features/review/shikiReviewHighlighter.test.ts deleted file mode 100644 index e0b02e8d6841..000000000000 --- a/apps/mobile/src/features/review/shikiReviewHighlighter.test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { describe, expect, it } from "vite-plus/test"; - -import { highlightSourceFile } from "./shikiReviewHighlighter"; - -describe("highlightSourceFile", () => { - it("preserves one highlighted token row per source line without trailing newlines", async () => { - const lines = [ - 'const items = ["a"];', - 'expect(items).toEqual(["a"]);', - "const next = items.map((item) => item.toUpperCase());", - 'expect(next).toContain("A");', - ]; - - const highlighted = await highlightSourceFile({ - path: "apps/mobile/src/example.ts", - contents: lines.join("\n"), - theme: "light", - }); - - expect(highlighted.map((tokens) => tokens.map((token) => token.content).join(""))).toEqual( - lines, - ); - }); - - it("keeps colors for a block comment that spans highlight batches", async () => { - const body = Array.from({ length: 400 }, (_, index) => `const insideComment${index} = 1;`); - const highlighted = await highlightSourceFile({ - path: "example.ts", - contents: ["/*", ...body, "*/", "const after = 2;"].join("\n"), - theme: "dark", - }); - - const commentColors = new Set( - highlighted.slice(1, -2).flatMap((line) => line.map((token) => token.color)), - ); - expect(commentColors.size).toBe(1); - expect(highlighted.at(-1)?.map((token) => token.color)).not.toEqual( - highlighted[1]?.map((token) => token.color), - ); - }); -}); diff --git a/apps/mobile/src/features/review/shikiReviewHighlighter.ts b/apps/mobile/src/features/review/shikiReviewHighlighter.ts deleted file mode 100644 index c280a0d488f1..000000000000 --- a/apps/mobile/src/features/review/shikiReviewHighlighter.ts +++ /dev/null @@ -1,679 +0,0 @@ -import { createHighlighterCore, type GrammarState, type HighlighterCore } from "@shikijs/core"; -import { createJavaScriptRegexEngine } from "@shikijs/engine-javascript"; -import bashLanguage from "@shikijs/langs/bash"; -import javascriptLanguage from "@shikijs/langs/javascript"; -import jsonLanguage from "@shikijs/langs/json"; -import jsxLanguage from "@shikijs/langs/jsx"; -import tsxLanguage from "@shikijs/langs/tsx"; -import typescriptLanguage from "@shikijs/langs/typescript"; -import yamlLanguage from "@shikijs/langs/yaml"; -import githubDarkDefault from "@shikijs/themes/github-dark-default"; -import githubLightDefault from "@shikijs/themes/github-light-default"; -import { getFiletypeFromFileName } from "@pierre/diffs/utils/getFiletypeFromFileName"; -import * as Schema from "effect/Schema"; - -import { - resolveReviewHighlighterEngine, - resolveReviewHighlighterEnginePreference, -} from "./reviewHighlighterEngine"; -import { createIncrementalSnippet } from "./incrementalSnippet"; -import type { ReviewRenderableLineRow } from "./reviewModel"; -import { applyDiffRangesToTokens, computeWordAltDiffRanges } from "./reviewWordDiffs"; - -export type ReviewDiffTheme = "light" | "dark"; - -export class ReviewHighlighterEngineInitializationError extends Schema.TaggedError()( - "ReviewHighlighterEngineInitializationError", - { - preferredEngine: Schema.Literals(["native", "javascript"]), - attemptedEngine: Schema.Literals(["native", "javascript"]), - cause: Schema.Defect(), - }, -) { - override get message(): string { - return `Failed to initialize the ${this.attemptedEngine} review highlighter with ${this.preferredEngine} preferred.`; - } -} - -import type { ReviewHighlightedToken } from "./reviewHighlightedToken.types"; - -export type { ReviewHighlightedToken } from "./reviewHighlightedToken.types"; - -const SHIKI_THEME_NAME_BY_SCHEME = { - light: "github-light-default", - dark: "github-dark-default", -} as const; -const REVIEW_HIGHLIGHTER_ENGINE_ENV_VALUE = - process.env.EXPO_PUBLIC_REVIEW_HIGHLIGHTER_ENGINE ?? - (process.env.NODE_ENV === "test" ? "javascript" : "native"); -const REVIEW_HIGHLIGHTER_ENGINE_PREFERENCE = resolveReviewHighlighterEnginePreference( - REVIEW_HIGHLIGHTER_ENGINE_ENV_VALUE, -); -const REVIEW_HIGHLIGHT_CHUNK_LINE_THRESHOLD = 8; -// Bounds each tokenizing call by characters, not lines, so long-line files -// still yield to touches and renders between short batches. -const REVIEW_HIGHLIGHT_CHUNK_CHARACTERS = 2_000; -// A yield waits for the next frame, so batches run back to back until about one -// frame of work has passed instead of yielding after every batch. -const REVIEW_HIGHLIGHT_YIELD_AFTER_MS = 16; -const REVIEW_TOKENIZE_MAX_LINE_LENGTH = 1_000; -const REVIEW_INITIAL_LANGUAGE_MODULES = [ - bashLanguage, - javascriptLanguage, - jsonLanguage, - jsxLanguage, - tsxLanguage, - typescriptLanguage, - yamlLanguage, -] satisfies Parameters[0]["langs"]; -const loadedLanguages = new Set([ - "text", - "bash", - "javascript", - "json", - "jsx", - "tsx", - "typescript", - "yaml", -]); -const languageLoadingPromises = new Map>(); -const languageImports: Partial Promise>> = { - javascript: () => import("@shikijs/langs/javascript"), - typescript: () => import("@shikijs/langs/typescript"), - jsx: () => import("@shikijs/langs/jsx"), - tsx: () => import("@shikijs/langs/tsx"), - python: () => import("@shikijs/langs/python"), - rust: () => import("@shikijs/langs/rust"), - go: () => import("@shikijs/langs/go"), - java: () => import("@shikijs/langs/java"), - kotlin: () => import("@shikijs/langs/kotlin"), - swift: () => import("@shikijs/langs/swift"), - "objective-c": () => import("@shikijs/langs/objective-c"), - c: () => import("@shikijs/langs/c"), - cpp: () => import("@shikijs/langs/cpp"), - csharp: () => import("@shikijs/langs/csharp"), - php: () => import("@shikijs/langs/php"), - ruby: () => import("@shikijs/langs/ruby"), - lua: () => import("@shikijs/langs/lua"), - perl: () => import("@shikijs/langs/perl"), - r: () => import("@shikijs/langs/r"), - dart: () => import("@shikijs/langs/dart"), - scala: () => import("@shikijs/langs/scala"), - elixir: () => import("@shikijs/langs/elixir"), - haskell: () => import("@shikijs/langs/haskell"), - clojure: () => import("@shikijs/langs/clojure"), - ocaml: () => import("@shikijs/langs/ocaml"), - fsharp: () => import("@shikijs/langs/fsharp"), - erlang: () => import("@shikijs/langs/erlang"), - zig: () => import("@shikijs/langs/zig"), - nim: () => import("@shikijs/langs/nim"), - html: () => import("@shikijs/langs/html"), - css: () => import("@shikijs/langs/css"), - scss: () => import("@shikijs/langs/scss"), - less: () => import("@shikijs/langs/less"), - xml: () => import("@shikijs/langs/xml"), - svg: () => import("@shikijs/langs/xml"), - vue: () => import("@shikijs/langs/vue"), - svelte: () => import("@shikijs/langs/svelte"), - astro: () => import("@shikijs/langs/astro"), - json: () => import("@shikijs/langs/json"), - jsonc: () => import("@shikijs/langs/jsonc"), - yaml: () => import("@shikijs/langs/yaml"), - toml: () => import("@shikijs/langs/toml"), - ini: () => import("@shikijs/langs/ini"), - bash: () => import("@shikijs/langs/bash"), - shellscript: () => import("@shikijs/langs/shellscript"), - powershell: () => import("@shikijs/langs/powershell"), - fish: () => import("@shikijs/langs/fish"), - sql: () => import("@shikijs/langs/sql"), - graphql: () => import("@shikijs/langs/graphql"), - prisma: () => import("@shikijs/langs/prisma"), - docker: () => import("@shikijs/langs/docker"), - hcl: () => import("@shikijs/langs/hcl"), - nix: () => import("@shikijs/langs/nix"), - markdown: () => import("@shikijs/langs/markdown"), - mdx: () => import("@shikijs/langs/mdx"), - tex: () => import("@shikijs/langs/tex"), - diff: () => import("@shikijs/langs/diff"), - regex: () => import("@shikijs/langs/regex"), - viml: () => import("@shikijs/langs/viml"), - makefile: () => import("@shikijs/langs/makefile"), - cmake: () => import("@shikijs/langs/cmake"), - groovy: () => import("@shikijs/langs/groovy"), -}; - -const languageAliases: Record = { - js: "javascript", - mjs: "javascript", - cjs: "javascript", - ts: "typescript", - mts: "typescript", - cts: "typescript", - py: "python", - rb: "ruby", - rs: "rust", - sh: "bash", - zsh: "bash", - shell: "shellscript", - yml: "yaml", - md: "markdown", - "c++": "cpp", - "c#": "csharp", - cs: "csharp", - dockerfile: "docker", - vim: "viml", - objc: "objective-c", - objectivec: "objective-c", - "obj-c": "objective-c", - ps1: "powershell", - pwsh: "powershell", - hs: "haskell", - ex: "elixir", - exs: "elixir", - erl: "erlang", - clj: "clojure", - ml: "ocaml", - fs: "fsharp", - tf: "hcl", - make: "makefile", - plain: "text", - plaintext: "text", - txt: "text", -}; -let highlighterPromise: Promise | null = null; - -type LoadedLanguageModule = { - default: Parameters[0]; -}; - -function isReviewHighlighterDebugLoggingEnabled(): boolean { - return typeof __DEV__ !== "undefined" ? __DEV__ : false; -} - -function logReviewHighlighterDiagnostic(message: string, details?: Record): void { - if (!isReviewHighlighterDebugLoggingEnabled()) { - return; - } - - if (details) { - console.log(`[review-highlighter] ${message}`, details); - return; - } - - console.log(`[review-highlighter] ${message}`); -} - -function logReviewHighlighterDiagnosticError(message: string, error: unknown): void { - if (!isReviewHighlighterDebugLoggingEnabled()) { - return; - } - console.error(`[review-highlighter] ${message}`, error); -} - -function stripTrailingNewline(value: string): string { - return value.endsWith("\n") ? value.slice(0, -1) : value; -} - -function joinPatchLines(lines: ReadonlyArray): string { - return lines.map(stripTrailingNewline).join("\n"); -} - -function waitForNextFrame(): Promise { - return new Promise((resolve) => { - setTimeout(resolve, 0); - }); -} - -async function getHighlighter(): Promise { - if (!highlighterPromise) { - const configuredHighlighterPromise = (async () => { - let nativeEngineAvailable = false; - let nativeInitializationError: ReviewHighlighterEngineInitializationError | undefined; - - logReviewHighlighterDiagnostic("initializing", { - configuredPreference: REVIEW_HIGHLIGHTER_ENGINE_ENV_VALUE, - preference: REVIEW_HIGHLIGHTER_ENGINE_PREFERENCE, - }); - - const themes = [githubLightDefault, githubDarkDefault]; - - if (REVIEW_HIGHLIGHTER_ENGINE_PREFERENCE !== "javascript") { - try { - const nativeEngineModule = await import("react-native-shiki-engine"); - nativeEngineAvailable = nativeEngineModule.isNativeEngineAvailable(); - logReviewHighlighterDiagnostic("checked native engine availability", { - nativeEngineAvailable, - }); - - if (nativeEngineAvailable) { - logReviewHighlighterDiagnostic("creating native regex engine"); - const highlighter = await createHighlighterCore({ - themes, - langs: REVIEW_INITIAL_LANGUAGE_MODULES, - engine: nativeEngineModule.createNativeEngine(), - }); - logReviewHighlighterDiagnostic("using native engine"); - return highlighter; - } - } catch (error) { - nativeInitializationError = new ReviewHighlighterEngineInitializationError({ - preferredEngine: REVIEW_HIGHLIGHTER_ENGINE_PREFERENCE, - attemptedEngine: "native", - cause: error, - }); - logReviewHighlighterDiagnosticError( - "native engine initialization failed; falling back to javascript", - nativeInitializationError, - ); - nativeEngineAvailable = false; - } - } else { - logReviewHighlighterDiagnostic("skipping native engine probe", { - reason: "preference-forced-javascript", - }); - } - - const engine = resolveReviewHighlighterEngine( - REVIEW_HIGHLIGHTER_ENGINE_PREFERENCE, - nativeEngineAvailable, - ); - let highlighter: HighlighterCore; - try { - highlighter = await createHighlighterCore({ - themes, - langs: REVIEW_INITIAL_LANGUAGE_MODULES, - engine: createJavaScriptRegexEngine(), - }); - } catch (cause) { - const javascriptError = new ReviewHighlighterEngineInitializationError({ - preferredEngine: REVIEW_HIGHLIGHTER_ENGINE_PREFERENCE, - attemptedEngine: "javascript", - cause, - }); - if (!nativeInitializationError) throw javascriptError; - throw new ReviewHighlighterEngineInitializationError({ - preferredEngine: REVIEW_HIGHLIGHTER_ENGINE_PREFERENCE, - attemptedEngine: "javascript", - cause: new AggregateError( - [nativeInitializationError, javascriptError], - "Native and JavaScript review highlighter initialization failed.", - { cause: nativeInitializationError }, - ), - }); - } - logReviewHighlighterDiagnostic("using javascript engine", { - resolvedEngine: engine, - }); - return highlighter; - })(); - - highlighterPromise = configuredHighlighterPromise.catch((error) => { - highlighterPromise = null; - throw error; - }); - } - - return highlighterPromise; -} - -function resolveLanguageAlias(language: string): string { - const normalized = language.toLowerCase(); - return languageAliases[normalized] ?? normalized; -} - -function resolveLoadedLanguageFromPath( - path: string, - languageHint: string | null = null, -): string | null { - const detectedLanguage = languageHint ?? getFiletypeFromFileName(path); - if (!detectedLanguage) { - return "text"; - } - - const candidate = resolveLanguageAlias(detectedLanguage); - if (candidate === "text" || candidate === "ansi") { - return "text"; - } - - if (!(candidate in languageImports)) { - return "text"; - } - - return loadedLanguages.has(candidate) ? candidate : null; -} - -async function loadSingleLanguage( - highlighter: HighlighterCore, - language: string, -): Promise { - if (loadedLanguages.has(language)) { - return true; - } - - const existingPromise = languageLoadingPromises.get(language); - if (existingPromise) { - return existingPromise; - } - - const importer = languageImports[language]; - if (!importer) { - return false; - } - - const loadingPromise = (async () => { - try { - const languageModule = (await importer()) as LoadedLanguageModule; - await highlighter.loadLanguage(languageModule.default); - loadedLanguages.add(language); - return true; - } catch { - return false; - } finally { - languageLoadingPromises.delete(language); - } - })(); - - languageLoadingPromises.set(language, loadingPromise); - return loadingPromise; -} - -async function resolveLanguageFromPath( - path: string, - languageHint: string | null = null, -): Promise { - const loadedLanguage = resolveLoadedLanguageFromPath(path, languageHint); - if (loadedLanguage) { - return loadedLanguage; - } - - const detectedLanguage = languageHint ?? getFiletypeFromFileName(path); - if (!detectedLanguage) { - return "text"; - } - - const candidate = resolveLanguageAlias(detectedLanguage); - if (candidate === "text" || candidate === "ansi") { - return "text"; - } - - if (!(candidate in languageImports)) { - return "text"; - } - - if (loadedLanguages.has(candidate)) { - return candidate; - } - - const highlighter = await getHighlighter(); - const loaded = await loadSingleLanguage(highlighter, candidate); - if (!loaded) { - return "text"; - } - - return candidate; -} - -type RawHighlightedLine = ReadonlyArray<{ content: string; color?: string; fontStyle?: number }>; -const normalizedLines = new WeakMap>(); - -function normalizeHighlightedLines( - tokenLines: ReadonlyArray, -): ReadonlyArray> { - return tokenLines.map((line) => { - const cached = normalizedLines.get(line); - if (cached) return cached; - const normalized = line.map((token) => ({ - content: token.content, - color: token.color ?? null, - fontStyle: token.fontStyle ?? null, - })); - normalizedLines.set(line, normalized); - return normalized; - }); -} - -function applyWordAltDiffHighlightsToSelectedLines(input: { - readonly lines: ReadonlyArray; - readonly tokenMap: Record>; -}): Record> { - const additionLineByTokenIndex = new Map(); - const deletionLineByTokenIndex = new Map(); - - input.lines.forEach((line) => { - if (line.change === "add" && line.additionTokenIndex !== null) { - additionLineByTokenIndex.set(line.additionTokenIndex, line); - } - if (line.change === "delete" && line.deletionTokenIndex !== null) { - deletionLineByTokenIndex.set(line.deletionTokenIndex, line); - } - }); - - const nextTokenMap = { ...input.tokenMap }; - const processedPairs = new Set(); - - input.lines.forEach((line) => { - if (line.change === "context" || !line.comparison) { - return; - } - - const pairedDeletionLine = - line.change === "delete" - ? line - : line.comparison.change === "delete" - ? deletionLineByTokenIndex.get(line.comparison.tokenIndex) - : undefined; - const pairedAdditionLine = - line.change === "add" - ? line - : line.comparison.change === "add" - ? additionLineByTokenIndex.get(line.comparison.tokenIndex) - : undefined; - - if ( - !pairedDeletionLine || - !pairedAdditionLine || - pairedDeletionLine.deletionTokenIndex === null || - pairedAdditionLine.additionTokenIndex === null - ) { - return; - } - - const pairKey = `${pairedDeletionLine.deletionTokenIndex}:${pairedAdditionLine.additionTokenIndex}`; - if (processedPairs.has(pairKey)) { - return; - } - processedPairs.add(pairKey); - - const ranges = computeWordAltDiffRanges({ - deletionLine: pairedDeletionLine.content, - additionLine: pairedAdditionLine.content, - }); - - if (ranges.deletion.length > 0) { - nextTokenMap[pairedDeletionLine.id] = applyDiffRangesToTokens( - nextTokenMap[pairedDeletionLine.id] ?? [], - ranges.deletion, - ); - } - if (ranges.addition.length > 0) { - nextTokenMap[pairedAdditionLine.id] = applyDiffRangesToTokens( - nextTokenMap[pairedAdditionLine.id] ?? [], - ranges.addition, - ); - } - }); - - return nextTokenMap; -} - -async function highlightLines( - code: string, - language: string, - theme: string, -): Promise>> { - if (code.length === 0) { - return []; - } - - const highlighter = await getHighlighter(); - const sourceLines = code.split("\n"); - const highlightedLines: Array> = []; - let grammarState: GrammarState | undefined; - let start = 0; - let sliceStartedAt = performance.now(); - - while (start < sourceLines.length) { - if (sourceLines[start]!.length > REVIEW_TOKENIZE_MAX_LINE_LENGTH) { - highlightedLines.push([{ content: sourceLines[start]!, color: null, fontStyle: null }]); - grammarState = undefined; - start += 1; - } else { - let end = start; - let characters = 0; - while (end < sourceLines.length) { - const length = sourceLines[end]!.length; - if ( - length > REVIEW_TOKENIZE_MAX_LINE_LENGTH || - (end > start && characters + length + 1 > REVIEW_HIGHLIGHT_CHUNK_CHARACTERS) - ) { - break; - } - characters += length + (end > start ? 1 : 0); - end += 1; - } - - const tokenLines = highlighter.codeToTokensBase(sourceLines.slice(start, end).join("\n"), { - lang: language, - theme, - grammarState, - }); - grammarState = highlighter.getLastGrammarState(tokenLines); - highlightedLines.push(...normalizeHighlightedLines(tokenLines)); - start = end; - } - - if ( - sourceLines.length > REVIEW_HIGHLIGHT_CHUNK_LINE_THRESHOLD && - start < sourceLines.length && - performance.now() - sliceStartedAt >= REVIEW_HIGHLIGHT_YIELD_AFTER_MS - ) { - await waitForNextFrame(); - sliceStartedAt = performance.now(); - } - } - - return highlightedLines; -} - -const snippetSessions = new WeakMap< - object, - { language: string; theme: string; highlight: ReturnType } ->(); - -export async function highlightCodeSnippet(input: { - readonly session?: object; - readonly code: string; - readonly language?: string | null; - readonly theme: ReviewDiffTheme; -}): Promise>> { - const languageHint = input.language?.trim() || "text"; - const language = await resolveLanguageFromPath(`snippet.${languageHint}`, languageHint); - const theme = SHIKI_THEME_NAME_BY_SCHEME[input.theme]; - if ( - !input.session || - language === "text" || - input.code.length === 0 || - input.code.length > 100_000 || - input.code.includes("\r") || - input.code.split("\n").some((line) => line.length > REVIEW_TOKENIZE_MAX_LINE_LENGTH) - ) { - if (input.session) snippetSessions.delete(input.session); - return highlightLines(input.code, language, theme); - } - const highlighter = await getHighlighter(); - let session = snippetSessions.get(input.session); - if (!session || session.language !== language || session.theme !== theme) { - session = { - language, - theme, - highlight: createIncrementalSnippet(highlighter, language, theme), - }; - snippetSessions.set(input.session, session); - } - return normalizeHighlightedLines(await session.highlight(input.code)); -} - -highlightCodeSnippet.read = (input: Parameters[0]) => { - if (!input.session || !input.code || input.code.length > 100_000 || input.code.includes("\r")) - return undefined; - const session = snippetSessions.get(input.session); - const hint = input.language?.trim() || "text"; - const language = resolveLoadedLanguageFromPath(`snippet.${hint}`, hint); - if ( - !session || - session.language !== language || - session.theme !== SHIKI_THEME_NAME_BY_SCHEME[input.theme] || - input.code.split("\n").some((line) => line.length > REVIEW_TOKENIZE_MAX_LINE_LENGTH) - ) - return undefined; - const tokens = session.highlight.read(input.code); - return tokens ? normalizeHighlightedLines(tokens) : undefined; -}; - -export async function highlightSourceFile(input: { - readonly path: string; - readonly contents: string; - readonly theme: ReviewDiffTheme; -}): Promise>> { - const language = await resolveLanguageFromPath(input.path); - return highlightLines(input.contents, language, SHIKI_THEME_NAME_BY_SCHEME[input.theme]); -} - -export async function highlightReviewSelectedLines(input: { - readonly filePath: string; - readonly lines: ReadonlyArray; - readonly theme: ReviewDiffTheme; - readonly languageHint?: string | null; -}): Promise>> { - if (input.lines.length === 0) { - return {}; - } - - const loadedLanguage = resolveLoadedLanguageFromPath(input.filePath, input.languageHint ?? null); - const language = - loadedLanguage ?? (await resolveLanguageFromPath(input.filePath, input.languageHint ?? null)); - const shikiTheme = SHIKI_THEME_NAME_BY_SCHEME[input.theme]; - const additionLikeLines: string[] = []; - const deletionLines: string[] = []; - for (const line of input.lines) { - if (line.change === "delete") { - deletionLines.push(`${line.content}\n`); - } else { - additionLikeLines.push(`${line.content}\n`); - } - } - const [additionTokens, deletionTokens] = await Promise.all([ - highlightLines(joinPatchLines(additionLikeLines), language, shikiTheme), - highlightLines(joinPatchLines(deletionLines), language, shikiTheme), - ]); - - const tokenMap: Record> = {}; - let additionIndex = 0; - let deletionIndex = 0; - - input.lines.forEach((line) => { - if (line.change === "delete") { - tokenMap[line.id] = deletionTokens[deletionIndex] ?? []; - deletionIndex += 1; - return; - } - - tokenMap[line.id] = additionTokens[additionIndex] ?? []; - additionIndex += 1; - }); - - return applyWordAltDiffHighlightsToSelectedLines({ - lines: input.lines, - tokenMap, - }); -} diff --git a/apps/mobile/src/features/review/useNativeReviewDiffHighlighting.ts b/apps/mobile/src/features/review/useNativeReviewDiffHighlighting.ts index 129fb5858428..6a9b5ee121ce 100644 --- a/apps/mobile/src/features/review/useNativeReviewDiffHighlighting.ts +++ b/apps/mobile/src/features/review/useNativeReviewDiffHighlighting.ts @@ -1,12 +1,7 @@ -import { settlePromise, squashAtomCommandFailure } from "@t3tools/client-runtime/state/runtime"; -import { AsyncResult } from "effect/reactivity"; import { useEffect, useRef, useState } from "react"; -import { - highlightNativeReviewDiffVisibleRows, - type NativeReviewDiffHighlightEngine, - type NativeReviewDiffHighlightScheme, -} from "../diffs/nativeReviewDiffHighlighter"; +import type { HighlightScheme } from "../../lib/highlights"; +import { highlightNativeReviewDiffVisibleRows } from "../diffs/nativeReviewDiffHighlighter"; import type { NativeReviewDiffRow } from "../diffs/nativeReviewDiffSurface"; import type { NativeReviewDiffFile } from "../diffs/nativeReviewDiffTypes"; @@ -19,27 +14,10 @@ function createEmptyTokenPatch(resetKey: string): string { return JSON.stringify({ resetKey, tokensByRowId: {} }); } -function isReviewDiffDebugLoggingEnabled(): boolean { - return typeof __DEV__ !== "undefined" ? __DEV__ : false; -} - -function logReviewDiffDiagnostic(message: string, details?: Record): void { - if (!isReviewDiffDebugLoggingEnabled()) { - return; - } - - if (details) { - console.log(`[review-sheet] ${message}`, details); - return; - } - - console.log(`[review-sheet] ${message}`); -} - export function useNativeReviewDiffHighlighting(input: { readonly files: ReadonlyArray; readonly rows: ReadonlyArray; - readonly scheme: NativeReviewDiffHighlightScheme; + readonly scheme: HighlightScheme; readonly resetKey: string; readonly enabled: boolean; }) { @@ -67,58 +45,25 @@ export function useNativeReviewDiffHighlighting(input: { return; } - const abortController = new AbortController(); - const requestRange = visibleRange; - const engine: NativeReviewDiffHighlightEngine = "native"; - - void (async () => { - const settled = await settlePromise(() => - highlightNativeReviewDiffVisibleRows({ - files, - rows, - scheme, - engine, - firstRowIndex: requestRange.firstRowIndex, - lastRowIndex: requestRange.lastRowIndex, - alreadyHighlightedRowIds: highlightedRowIdsRef.current, - signal: abortController.signal, - }), - ); - if (abortController.signal.aborted) return; - if (AsyncResult.isFailure(settled)) { - logReviewDiffDiagnostic("native visible highlight failed", { - error: squashAtomCommandFailure(settled), - resetKey, - scheme, - firstRowIndex: requestRange.firstRowIndex, - lastRowIndex: requestRange.lastRowIndex, - }); - return; - } - const result = settled.value; - if (result.rowCount === 0) return; - - for (const rowId of Object.keys(result.tokensByRowId)) { - highlightedRowIdsRef.current.add(rowId); - } - - const chunkIndex = visibleChunkIndexRef.current; - visibleChunkIndexRef.current += 1; - setTokensPatchJson( - JSON.stringify({ - resetKey, - chunkIndex, - fileId: "visible", - filePath: "visible rows", - language: "diff", - lineCount: result.rowCount, - durationMs: result.durationMs, - tokensByRowId: result.tokensByRowId, - }), - ); - })(); + const result = highlightNativeReviewDiffVisibleRows({ + files, + rows, + scheme, + firstRowIndex: visibleRange.firstRowIndex, + lastRowIndex: visibleRange.lastRowIndex, + alreadyHighlightedRowIds: highlightedRowIdsRef.current, + }); + if (result.rowCount === 0) return; + + for (const rowId of Object.keys(result.tokensByRowId)) { + highlightedRowIdsRef.current.add(rowId); + } - return () => abortController.abort(); + const chunkIndex = visibleChunkIndexRef.current; + visibleChunkIndexRef.current += 1; + setTokensPatchJson( + JSON.stringify({ resetKey, chunkIndex, tokensByRowId: result.tokensByRowId }), + ); }, [enabled, files, resetKey, rows, scheme, visibleRange]); return { diff --git a/apps/mobile/src/features/threads/ThreadFeed.tsx b/apps/mobile/src/features/threads/ThreadFeed.tsx index 11857f0e2b19..f24ed10e6ca0 100644 --- a/apps/mobile/src/features/threads/ThreadFeed.tsx +++ b/apps/mobile/src/features/threads/ThreadFeed.tsx @@ -172,7 +172,6 @@ import { setReviewSelectedSectionId } from "../review/reviewState"; import { Menu } from "../../components/ui/Menu"; import { copyPromptLink } from "../prompt-links/prompt-link-actions"; import { parseReviewCommentMessageSegments } from "../review/reviewCommentSelection"; -import type { ReviewDiffTheme } from "../review/shikiReviewHighlighter"; import { ReviewCommentCard, useReviewCommentColors, @@ -239,7 +238,6 @@ import { resolveThreadFeedFixedItemSize } from "./thread-feed-item-size"; import { htmlRenderFrameHeight } from "@t3tools/shared/htmlRender"; import { htmlRenderRowHeight, ThreadHtmlRender } from "./HtmlRenderWebView"; import { ThreadMcpApp } from "./McpAppWebView"; -import { useMarkdownCodeHighlight } from "./markdownCodeHighlightState"; import { assetEnvironment, useAssetUrl, diff --git a/apps/mobile/src/features/threads/markdownCodeHighlightState.ts b/apps/mobile/src/features/threads/markdownCodeHighlightState.ts index a8957eab7caf..e2e4c5b20034 100644 --- a/apps/mobile/src/features/threads/markdownCodeHighlightState.ts +++ b/apps/mobile/src/features/threads/markdownCodeHighlightState.ts @@ -1,87 +1,21 @@ -import { useAtomValue } from "@effect/atom-react"; -import * as Data from "effect/Data"; -import * as Effect from "effect/Effect"; -import { AsyncResult, Atom } from "effect/reactivity"; import { useMemo } from "react"; -import { - highlightCodeSnippet, - type ReviewDiffTheme, - type ReviewHighlightedToken, -} from "../review/shikiReviewHighlighter"; - -const MARKDOWN_CODE_HIGHLIGHT_IDLE_TTL_MS = 5 * 60_000; - -export type MarkdownHighlightedCode = ReadonlyArray>; - -export interface MarkdownCodeHighlightInput { - readonly code: string; - readonly enabled: boolean; - readonly language: string; - readonly theme: ReviewDiffTheme; -} - -type MarkdownCodeHighlighter = ( - input: MarkdownCodeHighlightInput, -) => Promise; - -class MarkdownCodeHighlightCacheKey extends Data.Class {} - -class MarkdownCodeHighlightError extends Data.TaggedError("MarkdownCodeHighlightError")<{ - readonly cause: unknown; -}> {} - -export function createMarkdownCodeHighlightAtomFamily(options?: { - readonly highlight?: MarkdownCodeHighlighter; - readonly idleTtlMs?: number; -}) { - const highlight = - options?.highlight ?? - ((input: MarkdownCodeHighlightInput) => - input.enabled - ? highlightCodeSnippet({ - code: input.code, - language: input.language, - theme: input.theme, - }) - : Promise.resolve(null)); - const idleTtlMs = options?.idleTtlMs ?? MARKDOWN_CODE_HIGHLIGHT_IDLE_TTL_MS; - const family = Atom.family((request: MarkdownCodeHighlightCacheKey) => - Atom.make( - Effect.tryPromise({ - try: () => highlight(request), - catch: (cause) => new MarkdownCodeHighlightError({ cause }), - }), - ).pipe( - Atom.setIdleTTL(idleTtlMs), - Atom.withLabel(`mobile:thread-markdown-code-highlight:${request.theme}:${request.language}`), - ), - ); - - return (input: MarkdownCodeHighlightInput) => family(new MarkdownCodeHighlightCacheKey(input)); -} - -export const markdownCodeHighlightAtom = createMarkdownCodeHighlightAtomFamily(); +import { resolveHighlightLanguage } from "../../lib/highlightLanguage"; +import { highlightCode, type HighlightedLines, type HighlightScheme } from "../../lib/highlights"; export function useMarkdownCodeHighlight(input: { readonly code: string; readonly enabled: boolean; readonly language: string | null | undefined; - readonly theme: ReviewDiffTheme; -}): MarkdownHighlightedCode | null { - const normalizedLanguage = input.language?.trim() || "text"; - const enabled = input.enabled && Boolean(input.language?.trim()); - const atomLanguage = enabled ? normalizedLanguage : "text"; - const highlightAtom = useMemo( + readonly theme: HighlightScheme; +}): HighlightedLines | null { + const { code, enabled, theme } = input; + const language = input.language?.trim(); + return useMemo( () => - markdownCodeHighlightAtom({ - code: enabled ? input.code : "", - enabled, - language: atomLanguage, - theme: input.theme, - }), - [atomLanguage, enabled, input.code, input.theme], + enabled && language + ? highlightCode(code, resolveHighlightLanguage({ language }), theme) + : null, + [code, enabled, language, theme], ); - const result = useAtomValue(highlightAtom); - return AsyncResult.isSuccess(result) ? result.value : null; } diff --git a/apps/mobile/src/lib/highlightLanguage.ts b/apps/mobile/src/lib/highlightLanguage.ts new file mode 100644 index 000000000000..6178f2470b93 --- /dev/null +++ b/apps/mobile/src/lib/highlightLanguage.ts @@ -0,0 +1,20 @@ +import { getFiletypeFromFileName } from "@pierre/diffs/utils/getFiletypeFromFileName"; + +import { HIGHLIGHTS_LANGUAGE_IDS } from "./highlights.generated"; + +/** The native lexer ID for a @pierre/highlights language name, or 0 (plain text). */ +export function highlightLanguageId(language: string): number { + return Object.hasOwn(HIGHLIGHTS_LANGUAGE_IDS, language) ? HIGHLIGHTS_LANGUAGE_IDS[language]! : 0; +} + +/** A @pierre/highlights language for a fence language or file path, or `text`. */ +export function resolveHighlightLanguage(input: { + readonly language?: string | null; + readonly path?: string; +}): string { + const hinted = input.language?.trim().toLowerCase(); + if (hinted && highlightLanguageId(hinted) !== 0) return hinted; + const detected = input.path ? getFiletypeFromFileName(input.path)?.toLowerCase() : undefined; + if (detected && highlightLanguageId(detected) !== 0) return detected; + return "text"; +} diff --git a/apps/mobile/src/lib/highlights.generated.ts b/apps/mobile/src/lib/highlights.generated.ts new file mode 100644 index 000000000000..c2908c48c595 --- /dev/null +++ b/apps/mobile/src/lib/highlights.generated.ts @@ -0,0 +1,371 @@ +// Generated by apps/mobile/scripts/generate-highlights.mts from @pierre/highlights 0.2.0 (highlights.wasm sha256 cf5fc4d83e7c1ddab19d163de096f787f87efe61504909aa469434f61ef51e2e). Do not edit. + +export const HIGHLIGHTS_LANGUAGE_IDS: Readonly> = { + plain: 0, + plaintext: 0, + text: 0, + txt: 0, + "angular-html": 1, + asm: 2, + assembly: 2, + s: 2, + astro: 3, + bash: 4, + sh: 4, + shell: 4, + shellscript: 4, + shellsession: 4, + zsh: 4, + bat: 5, + batch: 5, + batchfile: 5, + cmd: 5, + dos: 5, + c: 6, + h: 6, + c3: 7, + clj: 8, + cljc: 8, + cljs: 8, + clojure: 8, + edn: 8, + cmake: 9, + "c++": 10, + cc: 10, + cpp: 10, + cxx: 10, + hh: 10, + hpp: 10, + hxx: 10, + "c#": 11, + cs: 11, + csharp: 11, + css: 12, + cu: 13, + cuda: 13, + cuh: 13, + dart: 14, + diff: 15, + "git-commit": 15, + "git-rebase": 15, + patch: 15, + containerfile: 16, + docker: 16, + dockerfile: 16, + elixir: 17, + ex: 17, + exs: 17, + elm: 18, + erl: 19, + erlang: 19, + hrl: 19, + f03: 20, + f08: 20, + f90: 20, + f95: 20, + fortran: 20, + "fortran-free-form": 20, + f: 21, + f77: 21, + for: 21, + "fortran-fixed-form": 21, + "f#": 22, + fs: 22, + fsharp: 22, + fsi: 22, + fsx: 22, + gdresource: 23, + "godot-resource": 23, + tres: 23, + tscn: 23, + gd: 24, + gdscript: 24, + gdshader: 25, + gdshaderinc: 25, + "godot-shader": 25, + gleam: 26, + comp: 27, + frag: 27, + geom: 27, + glsl: 27, + vert: 27, + go: 28, + golang: 28, + gql: 29, + graphql: 29, + gradle: 30, + groovy: 30, + gsh: 30, + gvy: 30, + gy: 30, + haskell: 31, + hs: 31, + hlsl: 32, + htm: 33, + html: 33, + java: 34, + cjs: 35, + javascript: 35, + js: 35, + mjs: 35, + json: 36, + jsonc: 36, + json5: 37, + jsonl: 38, + jsx: 39, + jl: 40, + julia: 40, + kotlin: 41, + kt: 41, + kts: 41, + latex: 42, + tex: 42, + less: 43, + cl: 44, + el: 44, + elisp: 44, + "emacs-lisp": 44, + lisp: 44, + lsp: 44, + scheme: 44, + scm: 44, + lua: 45, + make: 46, + makefile: 46, + mk: 46, + markdown: 47, + md: 47, + matlab: 48, + octave: 48, + mdx: 49, + nim: 50, + nix: 51, + m: 52, + mm: 52, + objc: 52, + objcpp: 52, + "objective-c": 52, + "objective-cpp": 52, + objectivec: 52, + ml: 53, + mli: 53, + ocaml: 53, + delphi: 54, + dpk: 54, + dpr: 54, + lpr: 54, + "object-pascal": 54, + objectpascal: 54, + pas: 54, + pascal: 54, + pp: 54, + perl: 55, + pl: 55, + pm: 55, + php: 56, + powershell: 57, + ps: 57, + ps1: 57, + psd1: 57, + psm1: 57, + pwsh: 57, + proto: 58, + protobuf: 58, + py: 59, + python: 59, + r: 60, + rscript: 60, + rb: 61, + ruby: 61, + rs: 62, + rust: 62, + sass: 63, + sbt: 64, + sc: 64, + scala: 64, + scss: 65, + sol: 66, + solidity: 66, + sql: 67, + svelte: 68, + swift: 69, + hcl: 70, + terraform: 70, + tf: 70, + tfvars: 70, + toml: 71, + "angular-ts": 72, + cts: 72, + mts: 72, + ts: 72, + typescript: 72, + tsrx: 73, + tsx: 74, + vue: 75, + wasm: 76, + wat: 76, + wgsl: 77, + svg: 78, + xml: 78, + xsd: 78, + yaml: 79, + yml: 79, + zig: 80, + zon: 80, +}; + +/** `[color, fontStyle]` by token ID. fontStyle bits: italic 1, bold 2. */ +export const HIGHLIGHTS_THEME_STYLES: Readonly< + Record<"light" | "dark", ReadonlyArray> +> = { + light: [ + ["#0a0a0a", 0], + ["#18a46c", 0], + ["#18a46c", 0], + ["#1ca1c7", 0], + ["#737373", 0], + ["#737373", 0], + ["#d5a910", 0], + ["#d5a910", 0], + ["#a631be", 0], + ["#d52c36", 0], + ["#18a46c", 0], + ["#0a0a0a", 0], + ["#0a0a0a", 1], + ["#0a0a0a", 2], + ["#693acf", 0], + ["#693acf", 0], + ["#693acf", 0], + ["#d32a61", 0], + ["#d32a61", 0], + ["#d32a61", 0], + ["#d32a61", 0], + ["#08c0ef", 0], + ["#d5901c", 0], + ["#d5901c", 0], + ["#1ca1c7", 0], + ["#08c0ef", 0], + ["#8a8a8a", 1], + ["#d32a61", 0], + ["#009fff", 0], + ["#d47628", 0], + ["#d47628", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#d32a61", 0], + ["#d5512f", 0], + ["#18a46c", 0], + ["#693acf", 0], + ["#199f43", 0], + ["#16a994", 0], + ["#17a5af", 0], + ["#16a994", 0], + ["#d5a910", 0], + ["#d5512f", 0], + ["#d5512f", 0], + ["#d5512f", 0], + ["#0a0a0a", 0], + ["#199f43", 0], + ["#d5512f", 2], + ["#a631be", 0], + ["#a631be", 0], + ["#a631be", 0], + ["#d47628", 0], + ["#636363", 0], + ["#d5901c", 0], + ["#a631be", 0], + ["#737373", 0], + ["#d32a61", 0], + ["#009fff", 0], + ["#d32a61", 0], + ["#08c0ef", 0], + ["#a631be", 0], + ["#a631be", 0], + ["#d47628", 0], + ["#d5a910", 0], + ["#0a0a0a", 0], + ["#0a0a0a", 0], + ], + dark: [ + ["#fafafa", 0], + ["#60d199", 0], + ["#60d199", 0], + ["#68cdf2", 0], + ["#737373", 0], + ["#737373", 0], + ["#ffd452", 0], + ["#ffd452", 0], + ["#d568ea", 0], + ["#ff2e3f", 0], + ["#07c480", 0], + ["#fafafa", 0], + ["#fafafa", 1], + ["#fafafa", 2], + ["#9d6afb", 0], + ["#9d6afb", 0], + ["#9d6afb", 0], + ["#ff678d", 0], + ["#ff678d", 0], + ["#ff678d", 0], + ["#ff678d", 0], + ["#08c0ef", 0], + ["#ffab16", 0], + ["#ffab16", 0], + ["#68cdf2", 0], + ["#08c0ef", 0], + ["#636363", 1], + ["#ff678d", 0], + ["#009fff", 0], + ["#ffa359", 0], + ["#ffa359", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#636363", 0], + ["#ff678d", 0], + ["#ff855e", 0], + ["#60d199", 0], + ["#9d6afb", 0], + ["#5ecc71", 0], + ["#61d5c0", 0], + ["#64d1db", 0], + ["#61d5c0", 0], + ["#ffd452", 0], + ["#ff855e", 0], + ["#ff855e", 0], + ["#ff855e", 0], + ["#fafafa", 0], + ["#5ecc71", 0], + ["#ff855e", 2], + ["#d568ea", 0], + ["#d568ea", 0], + ["#d568ea", 0], + ["#ffa359", 0], + ["#a3a3a3", 0], + ["#ffab16", 0], + ["#d568ea", 0], + ["#737373", 0], + ["#ff678d", 0], + ["#009fff", 0], + ["#ff678d", 0], + ["#08c0ef", 0], + ["#d568ea", 0], + ["#d568ea", 0], + ["#ffa359", 0], + ["#ffd452", 0], + ["#fafafa", 0], + ["#fafafa", 0], + ], +}; diff --git a/apps/mobile/src/lib/highlights.test.ts b/apps/mobile/src/lib/highlights.test.ts new file mode 100644 index 000000000000..6d082b53f028 --- /dev/null +++ b/apps/mobile/src/lib/highlights.test.ts @@ -0,0 +1,46 @@ +import { codeToTokens } from "@pierre/highlights"; +import { pierreDark, pierreLight } from "@pierre/highlights/themes"; +import { describe, expect, it, vi } from "vite-plus/test"; + +import { highlightCode } from "./highlights"; + +vi.mock("expo", async () => { + const { createWasmHighlightsModule } = await import("./highlights.testing"); + const highlights = createWasmHighlightsModule(); + return { requireOptionalNativeModule: () => highlights }; +}); + +describe("highlightCode", () => { + it("produces @pierre/highlights' own tokens and colors", () => { + const code = [ + "/** 🎉 docs\r", + " */", + "export const greet = (name: string) => é;", + "const multi = `first", + "second`; // done", + "", + ].join("\n"); + + for (const [scheme, theme] of [ + ["light", pierreLight], + ["dark", pierreDark], + ] as const) { + const expected = codeToTokens(code, { lang: "tsx", theme }).tokens.map((line) => + line.map((token) => ({ + content: token.content, + color: token.color ?? null, + fontStyle: token.fontStyle ?? null, + })), + ); + expect(highlightCode(code, "tsx", scheme)).toEqual(expected); + } + }); + + it("keeps an over-long line as one plain token", () => { + const longLine = `const data = "${"x".repeat(1_000)}";`; + const [first, second] = highlightCode(`let a = 1;\n${longLine}`, "typescript", "dark"); + + expect(first?.length).toBeGreaterThan(1); + expect(second).toEqual([{ content: longLine, color: null, fontStyle: null }]); + }); +}); diff --git a/apps/mobile/src/lib/highlights.testing.ts b/apps/mobile/src/lib/highlights.testing.ts new file mode 100644 index 000000000000..ec1582c99534 --- /dev/null +++ b/apps/mobile/src/lib/highlights.testing.ts @@ -0,0 +1,22 @@ +import { createHighlighter } from "@pierre/highlights"; + +// The highlighter's line-record API, which `Highlighter` does not declare. +interface LineRecordHighlighter { + writeInput(input: string): number; + tokenizeLineRecords(language: number, byteLength: number): Uint32Array; +} + +/** + * Stands in for the T3Highlights native module with the WebAssembly build it is + * compiled from. Mock `expo`'s `requireOptionalNativeModule` with this. + */ +export function createWasmHighlightsModule() { + const highlighter = createHighlighter() as unknown as LineRecordHighlighter; + return { + tokenize(source: string, language: number): ArrayBuffer { + const records = highlighter.tokenizeLineRecords(language, highlighter.writeInput(source)); + // The view points into WebAssembly memory that the next call reuses. + return records.slice().buffer; + }, + }; +} diff --git a/apps/mobile/src/lib/highlights.ts b/apps/mobile/src/lib/highlights.ts new file mode 100644 index 000000000000..f936db108360 --- /dev/null +++ b/apps/mobile/src/lib/highlights.ts @@ -0,0 +1,73 @@ +import { requireOptionalNativeModule } from "expo"; + +import { highlightLanguageId } from "./highlightLanguage"; +import { HIGHLIGHTS_THEME_STYLES } from "./highlights.generated"; + +export type HighlightScheme = "light" | "dark"; + +export interface HighlightedToken { + readonly content: string; + readonly color: string | null; + readonly fontStyle: number | null; +} + +export type HighlightedLines = ReadonlyArray>; + +const LINE_END = 0xffffffff; +// Longer lines stay one plain token so a minified line does not become +// thousands of native text runs. +const MAX_HIGHLIGHTED_LINE_LENGTH = 1_000; + +// @pierre/highlights compiled to native code (modules/t3-highlights). Missing +// from binaries built before it shipped, where code renders as plain text. +const nativeHighlights = requireOptionalNativeModule<{ + tokenize(source: string, language: number): ArrayBuffer | null; +}>("T3Highlights"); + +function plainLines(code: string): HighlightedLines { + return code + .split(/\r?\n/u) + .map((line) => (line ? [{ content: line, color: null, fontStyle: null }] : [])); +} + +/** + * Tokenizes `code` synchronously, one token array per line. Lines split at LF + * and CRLF, and a trailing line break yields a final empty line. + */ +export function highlightCode( + code: string, + language: string, + scheme: HighlightScheme, +): HighlightedLines { + const id = highlightLanguageId(language); + const buffer = id === 0 ? null : (nativeHighlights?.tokenize(code, id) ?? null); + if (!buffer) return plainLines(code); + + // `(endUtf16, tokenId)` pairs. A LINE_END token ID ends a line, and its end + // is where the next line starts. Mirrors @pierre/highlights' lineRecordsToTokens. + const records = new Uint32Array(buffer); + const styles = HIGHLIGHTS_THEME_STYLES[scheme]; + const lines: HighlightedToken[][] = []; + let start = 0; + for (let record = 0; ; record += 2) { + const first = record; + while (record < records.length && records[record + 1] !== LINE_END) record += 2; + const end = record === first ? start : records[record - 2]!; + if (end - start > MAX_HIGHLIGHTED_LINE_LENGTH) { + lines.push([{ content: code.slice(start, end), color: null, fontStyle: null }]); + } else { + const line: HighlightedToken[] = []; + for (let at = first; at < record; at += 2) { + const tokenEnd = records[at]!; + if (tokenEnd <= start) continue; + const [color, fontStyle] = styles[records[at + 1]!] ?? styles[0]!; + line.push({ content: code.slice(start, tokenEnd), color, fontStyle }); + start = tokenEnd; + } + lines.push(line); + } + if (record >= records.length) break; + start = records[record]!; + } + return lines; +} diff --git a/knip.jsonc b/knip.jsonc index aba0742d2424..30e289a534da 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -106,6 +106,7 @@ // Fonts are configured as asset paths; Expo autolinks the native packages. "ignoreDependencies": [ "@expo-google-fonts/dm-sans", + "@t3tools/mobile-highlights-native", "@t3tools/mobile-review-diff-native", "@t3tools/mobile-terminal-native", ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9bb4ad1ab15b..10d7746c90eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -182,6 +182,9 @@ catalogs: '@noble/hashes': specifier: 1.8.0 version: 1.8.0 + '@pierre/highlights': + specifier: 0.2.0 + version: 0.2.0 '@types/plist': specifier: 3.0.5 version: 3.0.5 @@ -536,6 +539,9 @@ importers: '@pierre/diffs': specifier: 1.5.2 version: 1.5.2(patch_hash=2ec81ba1e8ce4681095a3473c2bf78e630417740c622720ef624febb467c25fc)(@shikijs/themes@4.2.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0) + '@pierre/highlights': + specifier: 'catalog:' + version: 0.2.0 '@react-native-ai/apple': specifier: 0.12.0 version: 0.12.0(patch_hash=2d09870c2848d185cb05b53ed823a46e12dba519324d8dd8e584e28731990f9d)(react-native@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6)) @@ -554,24 +560,15 @@ importers: '@react-navigation/native-stack': specifier: 7.21.0 version: 7.21.0(patch_hash=990d575444c4af2ce8218b3b7a8280fe244c03abbdb32b822a2e862f791dbf42)(52d9b4ccdf06285c715244e02709d347) - '@shikijs/core': - specifier: 4.2.0 - version: 4.2.0 - '@shikijs/engine-javascript': - specifier: 4.2.0 - version: 4.2.0 - '@shikijs/langs': - specifier: 4.2.0 - version: 4.2.0 - '@shikijs/themes': - specifier: 4.2.0 - version: 4.2.0 '@t3tools/client-runtime': specifier: workspace:* version: link:../../packages/client-runtime '@t3tools/contracts': specifier: workspace:* version: link:../../packages/contracts + '@t3tools/mobile-highlights-native': + specifier: file:./modules/t3-highlights + version: file:apps/mobile/modules/t3-highlights '@t3tools/mobile-review-diff-native': specifier: file:./modules/t3-review-diff version: file:apps/mobile/modules/t3-review-diff @@ -767,9 +764,6 @@ importers: react-native-screens: specifier: file:deps/react-native-screens-5.0.0-t3.43.tgz version: file:apps/mobile/deps/react-native-screens-5.0.0-t3.43.tgz(react-native@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(react@19.3.0) - react-native-shiki-engine: - specifier: ^0.3.12 - version: 0.3.12(react-native@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(react@19.3.0) react-native-svg: specifier: 15.16.0 version: 15.16.0(react-native@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(react@19.3.0) @@ -785,9 +779,6 @@ importers: remark-parse: specifier: 'catalog:' version: 11.0.0(supports-color@8.1.1) - shiki: - specifier: 4.2.0 - version: 4.2.0 tailwind-merge: specifier: ^3.5.0 version: 3.6.0 @@ -5563,6 +5554,9 @@ packages: react-dom: optional: true + '@pierre/highlights@0.2.0': + resolution: {integrity: sha512-hTpcOU1EzDAP4bYtEhxmMu2jwMvtkUydRUBUpWMSHTs3dw0IaC3Ld5ansMy18L0GE3b6Vfl2OGkLK+pWWpnBmw==} + '@pierre/theme@1.1.0': resolution: {integrity: sha512-GC2OWTAfTIIWWYhPCygwG8t2EtePQkRfON4MI2rwIkJylmiyqIttJID2dCL8sUD8cNdEvYkEyfEHHKMeCiDLoQ==} engines: {vscode: ^1.0.0} @@ -6051,10 +6045,6 @@ packages: resolution: {integrity: sha512-VT/MKtlpOhEPZloSH3Pb9WCZEBDoQVMa9jedp5UAwmJOar1DVc9DRODAxmYPW9M93IK4ryuqRejFfmlvlVDemw==} engines: {node: '>=20'} - '@shikijs/types@4.3.0': - resolution: {integrity: sha512-oc8b9U2SYvofKZk8e/737nIX0qwf6eV2vHFATeObAu7r+mUVpLs8Re0BmVkIjAWAYgkmG/CzLNo7rzuBzRu/wQ==} - engines: {node: '>=20'} - '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -6124,6 +6114,9 @@ packages: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} + '@t3tools/mobile-highlights-native@file:apps/mobile/modules/t3-highlights': + resolution: {directory: apps/mobile/modules/t3-highlights, type: directory} + '@t3tools/mobile-review-diff-native@file:apps/mobile/modules/t3-review-diff': resolution: {directory: apps/mobile/modules/t3-review-diff, type: directory} @@ -10706,12 +10699,6 @@ packages: react: '*' react-native: '*' - react-native-shiki-engine@0.3.12: - resolution: {integrity: sha512-CE6CA3uHGZT5OmY909H+vTv5lrmILV7zuPOF2pXRYXWN2qYm5KG7XacEB/Pq1U2+8D0zJoeMveTny/FHEqnipg==} - peerDependencies: - react: '*' - react-native: '*' - react-native-svg@15.16.0: resolution: {integrity: sha512-uh8yktufYeRU3W9Omi8+SPyLF9BVN4JmLflSgc9oOcKkSKk/S5JUmmTjKZq/L8GHfQUtCvcu/W6X4xhEfBBAjQ==} peerDependencies: @@ -15405,6 +15392,8 @@ snapshots: transitivePeerDependencies: - '@shikijs/themes' + '@pierre/highlights@0.2.0': {} + '@pierre/theme@1.1.0': {} '@pierre/theme@2.0.0': {} @@ -15840,11 +15829,6 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.5 - '@shikijs/types@4.3.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.5 - '@shikijs/vscode-textmate@10.0.2': {} '@sinclair/typebox@0.27.10': {} @@ -15926,6 +15910,8 @@ snapshots: dependencies: defer-to-connect: 2.0.1 + '@t3tools/mobile-highlights-native@file:apps/mobile/modules/t3-highlights': {} + '@t3tools/mobile-review-diff-native@file:apps/mobile/modules/t3-review-diff': {} '@t3tools/mobile-source-text@file:apps/mobile/modules/t3-source-text(react-native@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(react@19.3.0)': @@ -21243,13 +21229,6 @@ snapshots: react-native: 0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6) warn-once: 0.1.1 - react-native-shiki-engine@0.3.12(react-native@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(react@19.3.0): - dependencies: - '@shikijs/types': 4.3.0 - '@shikijs/vscode-textmate': 10.0.2 - react: 19.3.0 - react-native: 0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6) - react-native-svg@15.16.0(react-native@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(@react-native/metro-config@0.88.0(@babel/core@7.29.7(supports-color@8.1.1))(bufferutil@4.1.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(supports-color@8.1.1)(utf-8-validate@6.0.6))(react@19.3.0): dependencies: css-select: 5.2.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 60faa15a071c..3abda4bd695d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -52,6 +52,7 @@ catalog: "@noble/curves": 1.9.1 "@noble/hashes": 1.8.0 "@pierre/diffs": 1.5.2 + "@pierre/highlights": 0.2.0 "@tailwindcss/node": 4.3.3 "@tailwindcss/oxide": 4.3.3 "@tailwindcss/vite": 4.3.3 diff --git a/scripts/release-smoke.ts b/scripts/release-smoke.ts index fc82d4e20d6e..5819aa5cd5d8 100644 --- a/scripts/release-smoke.ts +++ b/scripts/release-smoke.ts @@ -17,6 +17,7 @@ const workspaceFiles = [ "apps/desktop/package.json", "apps/web/package.json", "apps/mobile/package.json", + "apps/mobile/modules/t3-highlights/package.json", "apps/mobile/modules/t3-source-text/package.json", "apps/mobile/modules/t3-review-diff/package.json", "apps/mobile/modules/t3-terminal/package.json", diff --git a/third-party-licenses.config.json b/third-party-licenses.config.json index 180a7bb3b151..544ed7ad39b1 100644 --- a/third-party-licenses.config.json +++ b/third-party-licenses.config.json @@ -160,6 +160,22 @@ "noticeFile": "apps/mobile/modules/t3-composer-editor/LICENSE", "sourceUrl": "https://github.com/expo/expo" }, + { + "bundles": ["ios", "android", "mobile"], + "license": "Apache-2.0", + "name": "wasm2c runtime (WABT)", + "version": "1.0.42", + "noticeFile": "apps/mobile/modules/t3-highlights/Vendor/wasm2c/LICENSE", + "sourceUrl": "https://github.com/WebAssembly/wabt/tree/1.0.42/wasm2c" + }, + { + "bundles": ["ios", "android", "mobile"], + "license": "MIT", + "name": "SIMD Everywhere", + "version": "0.8.2", + "noticeFile": "apps/mobile/modules/t3-highlights/Vendor/simde/LICENSE", + "sourceUrl": "https://github.com/simd-everywhere/simde/tree/v0.8.2" + }, { "bundles": ["ios", "android", "mobile"], "license": "MIT", diff --git a/vite.config.ts b/vite.config.ts index 8e356ed1eab9..92a8d215c3bc 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -151,6 +151,9 @@ export default defineConfig({ "apps/mobile/android/**", "apps/mobile/ios/**", "apps/mobile/uniwind-types.d.ts", + // Vendored and generated C. + "apps/mobile/modules/t3-highlights/Vendor/**", + "apps/mobile/modules/t3-highlights/cpp/generated/**", "*.icon/**", ], sortPackageJson: {}, From 7fd2e09e381a61f427da09dd7a8f2c9c1558fe59 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 16:19:41 -0700 Subject: [PATCH 02/28] fix(desktop): support Linux distro protocol launchers (#24591) Co-authored-by: Claude Opus 5.5 --- apps/desktop/src/app/DesktopConfig.ts | 1 + apps/desktop/src/app/DesktopEnvironment.ts | 2 ++ .../src/app/DesktopLinuxUrlHandler.test.ts | 13 +++++++++++ .../desktop/src/app/DesktopLinuxUrlHandler.ts | 7 +++++- .../src/app/DesktopPreReadyPlatform.test.ts | 22 +++++++++++++++++++ .../src/app/DesktopPreReadyPlatform.ts | 5 ++++- 6 files changed, 48 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src/app/DesktopConfig.ts b/apps/desktop/src/app/DesktopConfig.ts index 773ea24509cf..11f975a6b86a 100644 --- a/apps/desktop/src/app/DesktopConfig.ts +++ b/apps/desktop/src/app/DesktopConfig.ts @@ -55,6 +55,7 @@ export const DesktopConfig = Config.all({ otlpProtocol: Config.schema(OtlpProtocol, "T3CODE_OTLP_PROTOCOL").pipe( Config.withDefault("http/json"), ), + desktopLauncherPath: trimmedString("T3CODE_DESKTOP_LAUNCHER_PATH"), appImagePath: trimmedString("APPIMAGE"), disableAutoUpdate: optionalBoolean("T3CODE_DISABLE_AUTO_UPDATE"), mockUpdates: optionalBoolean("T3CODE_DESKTOP_MOCK_UPDATES"), diff --git a/apps/desktop/src/app/DesktopEnvironment.ts b/apps/desktop/src/app/DesktopEnvironment.ts index ecf08255feb3..1066198b8f61 100644 --- a/apps/desktop/src/app/DesktopEnvironment.ts +++ b/apps/desktop/src/app/DesktopEnvironment.ts @@ -77,6 +77,7 @@ export class DesktopEnvironment extends Context.Service< readonly linuxDesktopEntryName: string; readonly linuxWmClass: string; readonly linuxApplicationsDir: string; + readonly desktopLauncherPath: Option.Option; readonly appImagePath: Option.Option; readonly defaultDesktopSettings: DesktopAppSettings.DesktopSettings; readonly runtimeInfo: DesktopRuntimeInfo; @@ -233,6 +234,7 @@ const make = Effect.fn("desktop.environment.make")(function* ( linuxDesktopEntryName: resolveLinuxDesktopEntryName(isDevelopment), linuxWmClass: isDevelopment ? "t3code-dev" : "t3code", linuxApplicationsDir, + desktopLauncherPath: config.desktopLauncherPath, appImagePath: config.appImagePath, defaultDesktopSettings: DesktopAppSettings.resolveDefaultDesktopSettings(input.appVersion), runtimeInfo: resolveDesktopRuntimeInfo({ diff --git a/apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts b/apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts index 854f43c5623c..e9766c2174de 100644 --- a/apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts +++ b/apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts @@ -31,6 +31,7 @@ const makeEnvironment = (path: Path.Path, overrides: Record = { linuxDesktopEntryName: "com.t3tools.T3Code.desktop", linuxWmClass: "t3code", linuxApplicationsDir: "/home/alice/.local/share/applications", + desktopLauncherPath: Option.none(), appImagePath: Option.some("/home/alice/Applications/T3-Code.AppImage"), path, ...overrides, @@ -228,6 +229,18 @@ describe("DesktopLinuxUrlHandler", () => { }); }); + it.effect("launches a distribution package through its configured launcher", () => { + const recorded = emptyRecording(); + + return Effect.gen(function* () { + yield* runRegister(recorded, { + environment: { desktopLauncherPath: Option.some("/opt/T3 Code/t3code") }, + }); + + assert.include(recorded.files[0]?.content, 'Exec="/opt/T3 Code/t3code" %U'); + }); + }); + it.effect("does not rewrite the pre-ready entry while the portal can be reading it", () => { const recorded = emptyRecording(); diff --git a/apps/desktop/src/app/DesktopLinuxUrlHandler.ts b/apps/desktop/src/app/DesktopLinuxUrlHandler.ts index e03418964e33..785dc4e0b905 100644 --- a/apps/desktop/src/app/DesktopLinuxUrlHandler.ts +++ b/apps/desktop/src/app/DesktopLinuxUrlHandler.ts @@ -141,9 +141,14 @@ export const make = Effect.gen(function* () { const themeIconDir = environment.path.join(hicolorDir, LINUX_THEME_ICON_SIZE, "apps"); const writeDesktopEntry = Effect.gen(function* () { + // Distribution packages that run on a shared Electron set + // T3CODE_DESKTOP_LAUNCHER_PATH, because process.execPath is that Electron. // Inside the mounted AppImage, process.execPath points at a transient // /tmp/.mount_* path — the handler must launch the AppImage itself. - const execTarget = Option.getOrElse(environment.appImagePath, () => process.execPath); + const execTarget = environment.desktopLauncherPath.pipe( + Option.orElse(() => environment.appImagePath), + Option.getOrElse(() => process.execPath), + ); const content = renderUrlHandlerDesktopEntry({ displayName: environment.displayName, execTarget, diff --git a/apps/desktop/src/app/DesktopPreReadyPlatform.test.ts b/apps/desktop/src/app/DesktopPreReadyPlatform.test.ts index 143a6e5fd87c..f2b176ee3761 100644 --- a/apps/desktop/src/app/DesktopPreReadyPlatform.test.ts +++ b/apps/desktop/src/app/DesktopPreReadyPlatform.test.ts @@ -166,6 +166,28 @@ describe("DesktopPreReadyPlatform", () => { ).pipe(Effect.ensuring(Effect.sync(() => vi.unstubAllEnvs()))); }); + it.effect("points the early portal entry at a configured distribution launcher", () => { + vi.stubEnv("VITE_DEV_SERVER_URL", ""); + vi.stubEnv("XDG_DATA_HOME", "/xdg"); + vi.stubEnv("APPIMAGE", "/Applications/current.AppImage"); + vi.stubEnv("T3CODE_DESKTOP_LAUNCHER_PATH", " /opt/T3 Code/t3code "); + getSwitchValueMock.mockReturnValue(""); + + return Effect.scoped( + Effect.gen(function* () { + yield* Layer.build( + DesktopPreReadyPlatform.layer.pipe( + Layer.provide(Layer.succeed(HostProcess.Platform, "linux")), + ), + ); + const entry = writeFileSyncMock.mock.calls.find( + ([path]) => path === "/xdg/applications/com.t3tools.T3Code.desktop", + )?.[1]; + assert.include(entry, 'Exec="/opt/T3 Code/t3code" %U'); + }), + ).pipe(Effect.ensuring(Effect.sync(() => vi.unstubAllEnvs()))); + }); + it.effect( "acquires a synchronous pre-ready layer before an asynchronous Clerk-shaped layer", () => diff --git a/apps/desktop/src/app/DesktopPreReadyPlatform.ts b/apps/desktop/src/app/DesktopPreReadyPlatform.ts index 58670439a525..4179ec0636ed 100644 --- a/apps/desktop/src/app/DesktopPreReadyPlatform.ts +++ b/apps/desktop/src/app/DesktopPreReadyPlatform.ts @@ -109,7 +109,10 @@ export const make = Effect.gen(function* () { isDevelopment: linux.isDevelopment, appVersion: Electron.app.getVersion(), }).displayName, - execTarget: process.env.APPIMAGE?.trim() || process.execPath, + execTarget: + process.env.T3CODE_DESKTOP_LAUNCHER_PATH?.trim() || + process.env.APPIMAGE?.trim() || + process.execPath, scheme: ElectronProtocol.getDesktopScheme(linux.isDevelopment), ...(iconPath === undefined ? {} : { iconPath }), }), From c4fa4629eb645b95aae2beef56c70f705b736049 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 16:34:06 -0700 Subject: [PATCH 03/28] fix(provider-acp): force-kill terminal commands that ignore SIGTERM (#24596) Co-authored-by: saphid --- .../src/server/clientTerminals.test.ts | 139 ++++++++++++++++-- .../src/server/clientTerminals.ts | 11 +- 2 files changed, 137 insertions(+), 13 deletions(-) diff --git a/packages/provider-acp/src/server/clientTerminals.test.ts b/packages/provider-acp/src/server/clientTerminals.test.ts index 0f201600acda..a8f87cf3550f 100644 --- a/packages/provider-acp/src/server/clientTerminals.test.ts +++ b/packages/provider-acp/src/server/clientTerminals.test.ts @@ -1,7 +1,13 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import { describe, expect, it } from "@effect/vitest"; +import * as Deferred from "effect/Deferred"; import * as Effect from "effect/Effect"; +import * as Fiber from "effect/Fiber"; +import * as Sink from "effect/Sink"; +import * as TestClock from "effect/testing/TestClock"; import * as Result from "effect/Result"; +import * as Stream from "effect/Stream"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as HostProcess from "@t3tools/shared/HostProcess"; import { @@ -19,7 +25,7 @@ const withTerminals = (use: (terminals: AcpClientTerminals) => Effect.Effe }).pipe(Effect.provide(NodeServices.layer), Effect.scoped); describe("AcpClientTerminals", () => { - it.effect("runs a command, buffers output, and reports the exit status", () => + it.live("runs a command, buffers output, and reports the exit status", () => withTerminals((terminals) => Effect.gen(function* () { const created = yield* terminals.create({ @@ -45,7 +51,7 @@ describe("AcpClientTerminals", () => { ), ); - it.effect("resolves terminal environment from the requesting ACP session", () => + it.live("resolves terminal environment from the requesting ACP session", () => Effect.gen(function* () { const terminals = yield* makeAcpClientTerminals({ defaultCwd: process.cwd(), @@ -71,7 +77,7 @@ describe("AcpClientTerminals", () => { }).pipe(Effect.provide(NodeServices.layer), Effect.scoped), ); - it.effect("runs Devin shell source with arguments, pipes, and session fallback variables", () => + it.live("runs Devin shell source with arguments, pipes, and session fallback variables", () => Effect.gen(function* () { const terminals = yield* makeAcpClientTerminals({ defaultCwd: process.cwd(), @@ -90,7 +96,7 @@ describe("AcpClientTerminals", () => { }).pipe(Effect.provide(NodeServices.layer), Effect.scoped), ); - it.effect("truncates buffered output from the beginning at the byte limit", () => + it.live("truncates buffered output from the beginning at the byte limit", () => withTerminals((terminals) => Effect.gen(function* () { const created = yield* terminals.create({ @@ -112,7 +118,7 @@ describe("AcpClientTerminals", () => { ), ); - it.effect("kills long-running commands and rejects released terminal handles", () => + it.live("kills long-running commands and rejects released terminal handles", () => withTerminals((terminals) => Effect.gen(function* () { const created = yield* terminals.create({ @@ -144,7 +150,122 @@ describe("AcpClientTerminals", () => { ), ); - it.effect("reserves terminal capacity across concurrent creates", () => + it.effect.each([ + { deadline: "default", forceKillAfter: undefined, deadlineMillis: 5000 }, + { deadline: "configured", forceKillAfter: "250 millis" as const, deadlineMillis: 250 }, + ])( + "waits for the $deadline deadline before force-killing a SIGTERM-ignoring terminal", + ({ forceKillAfter, deadlineMillis }) => + Effect.gen(function* () { + const exited = yield* Deferred.make(); + const child = ChildProcessSpawner.makeHandle({ + pid: ChildProcessSpawner.ProcessId(1), + exitCode: Deferred.await(exited), + isRunning: Deferred.isDone(exited).pipe(Effect.map((done) => !done)), + // Model a process that only exits when the spawner escalates after its deadline. + kill: (options) => + options?.forceKillAfter === undefined + ? Deferred.await(exited).pipe(Effect.asVoid) + : Effect.sleep(options.forceKillAfter).pipe( + Effect.andThen(Deferred.succeed(exited, ChildProcessSpawner.ExitCode(137))), + Effect.asVoid, + ), + stdin: Sink.drain, + stdout: Stream.empty, + stderr: Stream.empty, + all: Stream.empty, + getInputFd: () => Sink.drain, + getOutputFd: () => Stream.empty, + unref: Effect.succeed(Effect.void), + }); + const terminals = yield* makeAcpClientTerminals({ + defaultCwd: process.cwd(), + ...(forceKillAfter === undefined ? {} : { forceKillAfter }), + }).pipe( + Effect.provideService( + ChildProcessSpawner.ChildProcessSpawner, + ChildProcessSpawner.make(() => Effect.succeed(child)), + ), + ); + yield* Effect.addFinalizer(() => + Deferred.succeed(exited, ChildProcessSpawner.ExitCode(137)).pipe( + Effect.andThen(terminals.disposeAll), + ), + ); + const terminal = yield* terminals.create({ + sessionId: "session", + command: "ignores-SIGTERM", + }); + const request = { sessionId: "session", ...terminal }; + const killing = yield* terminals.kill(request).pipe(Effect.forkChild); + const waiting = yield* terminals.waitForExit(request).pipe(Effect.forkChild); + + yield* TestClock.adjust(deadlineMillis - 1); + expect(yield* child.isRunning).toBe(true); + expect(killing.pollUnsafe()).toBeUndefined(); + expect(waiting.pollUnsafe()).toBeUndefined(); + yield* TestClock.adjust("1 millis"); + expect(yield* child.isRunning).toBe(false); + yield* Fiber.join(killing); + expect(yield* Fiber.join(waiting)).toEqual({ exitCode: 137, signal: null }); + }).pipe(Effect.scoped), + ); + + it.live("force-kills commands that ignore SIGTERM and resolves wait_for_exit", () => + Effect.gen(function* () { + const spawner = yield* ChildProcessSpawner.ChildProcessSpawner; + const ready = yield* Deferred.make(); + const spawned = yield* Deferred.make(); + let stdout = ""; + const terminals = yield* makeAcpClientTerminals({ + defaultCwd: process.cwd(), + forceKillAfter: "50 millis", + }).pipe( + Effect.provideService(ChildProcessSpawner.ChildProcessSpawner, { + ...spawner, + spawn: (command) => + spawner.spawn(command).pipe( + Effect.tap((child) => Deferred.succeed(spawned, child)), + Effect.map((child) => ({ + ...child, + stdout: child.stdout.pipe( + Stream.tap((chunk) => { + stdout += Buffer.from(chunk).toString("utf8"); + return stdout.includes("ready") + ? Deferred.succeed(ready, undefined) + : Effect.void; + }), + ), + })), + ), + }), + ); + yield* Effect.addFinalizer(() => terminals.disposeAll); + const terminal = yield* terminals.create({ + sessionId: "session", + command: process.execPath, + args: [ + "-e", + "process.on('SIGTERM', () => {}); console.log('ready'); setInterval(() => {}, 1000);", + ], + }); + const child = yield* Deferred.await(spawned); + // Reap only this test's captured child, including when the regression fails. + yield* Effect.addFinalizer(() => child.kill({ killSignal: "SIGKILL" }).pipe(Effect.ignore)); + yield* Deferred.await(ready); + + const request = { sessionId: "session", ...terminal }; + yield* terminals.kill(request); + const exit = yield* terminals.waitForExit(request); + // Windows has no signals: the command is terminated without a signal name. + if (!(yield* HostProcess.isWindows)) { + expect(exit).toEqual({ exitCode: null, signal: "SIGKILL" }); + } + expect(yield* child.isRunning).toBe(false); + }).pipe(Effect.provide(NodeServices.layer), Effect.scoped), + ); + + it.live("reserves terminal capacity across concurrent creates", () => withTerminals((terminals) => Effect.gen(function* () { const results = yield* Effect.all( @@ -166,7 +287,7 @@ describe("AcpClientTerminals", () => { ), ); - it.effect("bounds unreleased terminal handles without invalidating existing ids", () => + it.live("bounds unreleased terminal handles without invalidating existing ids", () => withTerminals((terminals) => Effect.gen(function* () { const terminalIds: string[] = []; @@ -197,7 +318,7 @@ describe("AcpClientTerminals", () => { ), ); - it.effect("bounds aggregate output retained across unreleased terminals", () => + it.live("bounds aggregate output retained across unreleased terminals", () => withTerminals((terminals) => Effect.gen(function* () { const terminalIds: string[] = []; @@ -228,7 +349,7 @@ describe("AcpClientTerminals", () => { ), ); - it.effect("rejects terminal handles from a different ACP session", () => + it.live("rejects terminal handles from a different ACP session", () => withTerminals((terminals) => Effect.gen(function* () { const created = yield* terminals.create({ diff --git a/packages/provider-acp/src/server/clientTerminals.ts b/packages/provider-acp/src/server/clientTerminals.ts index d4fb6d3bb323..72a90b6cf1df 100644 --- a/packages/provider-acp/src/server/clientTerminals.ts +++ b/packages/provider-acp/src/server/clientTerminals.ts @@ -137,13 +137,13 @@ function acpTerminalCommand(input: { readonly shellCommands?: boolean | undefined; readonly defaultCwd: string; readonly environment?: NodeJS.ProcessEnv | undefined; - readonly forceKillAfter?: Duration.Input | undefined; + readonly forceKillAfter: Duration.Input; }) { return ChildProcess.make(input.request.command, input.request.args ?? [], { cwd: input.request.cwd ?? input.defaultCwd, ...(input.environment === undefined ? {} : { env: input.environment }), shell: input.shellCommands === true && (input.request.args?.length ?? 0) === 0, - forceKillAfter: input.forceKillAfter ?? "5 seconds", + forceKillAfter: input.forceKillAfter, }); } @@ -151,6 +151,7 @@ export const makeAcpClientTerminals = Effect.fn("makeAcpClientTerminals")(functi options: AcpClientTerminalsOptions, ): Effect.fn.Return { const spawner = yield* ChildProcessSpawner.ChildProcessSpawner; + const forceKillAfter = options.forceKillAfter ?? "5 seconds"; const creationPermit = yield* Semaphore.make(1); const terminals = new Map(); let nextTerminalNumber = 1; @@ -232,7 +233,7 @@ export const makeAcpClientTerminals = Effect.fn("makeAcpClientTerminals")(functi shellCommands: options.shellCommands, defaultCwd: options.defaultCwd, environment, - forceKillAfter: options.forceKillAfter, + forceKillAfter, }), ) .pipe( @@ -266,7 +267,9 @@ export const makeAcpClientTerminals = Effect.fn("makeAcpClientTerminals")(functi ), }, exit: yield* Deferred.make(), - kill: child.kill().pipe(Effect.ignore), + // The spawner only applies the command's forceKillAfter on scope close; + // an explicit kill must pass it or a SIGTERM-ignoring command never exits. + kill: child.kill({ forceKillAfter }).pipe(Effect.ignore), dispose: Scope.close(terminalScope, Exit.void).pipe(Effect.ignore), exitStatus: undefined, released: false, From 843f4e35292391897089535e8f1af59b322e70f8 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 16:46:26 -0700 Subject: [PATCH 04/28] fix(grok): invoke leading picked skills through native commands (#24605) Co-authored-by: Claude Opus 5.5 --- .../Adapters/AcpAdapterV2.test.ts | 84 +++++++++++++++++++ packages/provider-acp/src/server/adapter.ts | 23 ++++- packages/provider-grok/src/server/adapter.ts | 19 +++++ .../provider-grok/src/server/skills.test.ts | 15 +++- packages/provider-grok/src/server/skills.ts | 12 +++ 5 files changed, 149 insertions(+), 4 deletions(-) diff --git a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts index 1a0c6caf1f92..12d1a0846bbe 100644 --- a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts @@ -53,6 +53,7 @@ import * as EffectAcpErrors from "effect-acp/errors"; import type * as EffectAcpProtocol from "effect-acp/protocol"; import type * as EffectAcpSchema from "effect-acp/compat"; +import { writeFakeCli } from "@t3tools/provider-testing/fakeCli"; import * as TestProviderHost from "@t3tools/provider-testing/TestProviderHost"; import * as McpProviderSessions from "@t3tools/provider-core/server/McpProviderSessions"; import * as AcpSessionRuntime from "@t3tools/provider-acp/server/AcpSessionRuntime"; @@ -3169,6 +3170,89 @@ describe("AcpAdapterV2", () => { }).pipe(Effect.provide(layerTest), Effect.scoped), ); + // Oracle: #13457. Grok expands only a leading `/name`, so a picked leading `$name` + // must reach it in that form; anything else keeps the user's text. + it.live.each([ + { text: "$deploy ship it", sent: "/deploy ship it", native: true }, + { text: "ship $deploy", sent: "ship $deploy", native: false }, + { text: "$other ship it", sent: "$other ship it", native: false }, + ])("Grok sends $text with a picked skill as $sent", ({ text, sent, native }) => + Effect.gen(function* () { + const childProcessSpawner = yield* ChildProcessSpawner.ChildProcessSpawner; + const fileSystem = yield* FileSystem.FileSystem; + const path = yield* Path.Path; + const mockAgentPath = yield* path.fromFileUrl( + new URL("../../../scripts/acp-mock-agent.ts", import.meta.url), + ); + const hostPlatform = yield* HostProcess.Platform; + // Stands in for `grok inspect --json`, the catalog behind the `$` picker. + const catalog = { skills: [{ name: "deploy", source: { path: "/s/deploy/SKILL.md" } }] }; + const grokPath = writeFakeCli({ + directory: yield* fileSystem.makeTempDirectoryScoped(), + name: "grok", + source: `process.stdout.write(${JSON.stringify(`${JSON.stringify(catalog)}\n`)});\n`, + platform: hostPlatform, + }); + const protocolEvents = yield* Queue.unbounded(); + const instanceId = ProviderInstanceId.make("grok-skill-mention"); + const adapter = yield* makeGrokAdapterV2({ + instanceId, + settings: { ...DEFAULT_GROK_SETTINGS, binaryPath: grokPath }, + // The fake CLI needs `node` on its PATH. + environment: { ...process.env }, + hostPlatform, + selfInvocation: yield* resolveSelfInvocation(), + makeRuntime: (input) => + makeMockRuntime({ childProcessSpawner, mockAgentPath, protocolEvents })(input).pipe( + Effect.flatMap(makeXAiPromptCompletionRuntime), + ), + }); + const threadId = ThreadId.make("grok-skill-mention"); + const modelSelection = { instanceId, model: "default" } as const; + const runtimePolicy = ProviderAdapter.ProviderAdapterV2RuntimePolicy.make({ + runtimeMode: "full-access", + interactionMode: "default", + cwd: process.cwd(), + }); + const runtime = yield* adapter.openSession({ + threadId, + providerSessionId: ProviderSessionId.make("grok-skill-mention"), + modelSelection, + runtimePolicy, + }); + const providerThread = yield* runtime.ensureThread({ + threadId, + modelSelection, + runtimePolicy, + }); + yield* runtime.startTurn( + makeTurnInput({ + threadId, + providerThread, + instanceId, + runtimePolicy, + now: yield* DateTime.now, + messageText: text, + }), + ); + const prompt = yield* Stream.fromQueue(protocolEvents).pipe( + Stream.filter( + (event) => + event.direction === "outgoing" && rawProtocolMethod(event) === "session/prompt", + ), + Stream.runHead, + ); + const blocks = rawProtocolPromptTextBlocks(Option.getOrThrow(prompt)); + if (native) { + // Same shape as a typed native command: one bare text block, no T3 instructions. + assert.deepEqual(blocks, [{ type: "text", text: sent }]); + } else { + assert.isTrue(blocks.some((block) => block.text.includes(sent))); + assert.isFalse(blocks.some((block) => block.text.trimStart().startsWith("/"))); + } + }).pipe(Effect.provide(layerTest), Effect.scoped), + ); + // Oracle: #15888 KillTask reports. Command completion must release the turn even // when the CLI keeps the prompt RPC and process alive. Kill calls stay visible. it.live.each([ diff --git a/packages/provider-acp/src/server/adapter.ts b/packages/provider-acp/src/server/adapter.ts index 01a729cd7c9e..7d4438a64df8 100644 --- a/packages/provider-acp/src/server/adapter.ts +++ b/packages/provider-acp/src/server/adapter.ts @@ -225,6 +225,14 @@ class AcpModelSelectionError extends Schema.TaggedError( export interface AcpAdapterV2Flavor { readonly promptFailure?: (cause: unknown) => OrchestrationV2ProviderFailure; + /** + * Runs before attachment paths, T3 instructions and native slash-command detection, + * so a rewrite can turn the user's text into a native command. + */ + readonly rewriteUserText?: ( + text: string, + turnInput: ProviderAdapter.ProviderAdapterV2TurnInput, + ) => Effect.Effect; readonly driver: ProviderDriverKind; readonly capabilities: OrchestrationV2ProviderCapabilities; readonly clientCapabilitiesMeta?: NonNullable< @@ -7162,12 +7170,23 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( } satisfies T3AcpInstructionState; const previousInstructionState = (yield* Ref.get(promptInstructionStates)).get(sessionId); const compactionMarker = (yield* Ref.get(compactionMarkers)).get(sessionId); + const userText = + flavor.rewriteUserText === undefined + ? turnInput.message.text + : yield* flavor + .rewriteUserText(turnInput.message.text, turnInput) + .pipe( + Effect.provideService( + ChildProcessSpawner.ChildProcessSpawner, + childProcessSpawner, + ), + ); const messageText = providerMessageTextWithAttachmentPaths({ - text: turnInput.message.text, + text: userText, attachments: turnInput.message.attachments, resolveAttachmentPath: host.resolveAttachmentPath, }); - const isNativeSlashCommand = turnInput.message.text.trimStart().startsWith("/"); + const isNativeSlashCommand = userText.trimStart().startsWith("/"); const text = t3AcpPromptWithInstructions({ prompt: messageText, state: instructionState, diff --git a/packages/provider-grok/src/server/adapter.ts b/packages/provider-grok/src/server/adapter.ts index 87ccbde77f2b..e919874c4654 100644 --- a/packages/provider-grok/src/server/adapter.ts +++ b/packages/provider-grok/src/server/adapter.ts @@ -4,6 +4,7 @@ import { isXAiTaskCompletedWakeNotification, xAiRateLimitedErrorCode, } from "./xaiAcpExtension.ts"; +import { discoverGrokSkills, leadingGrokSkillMention } from "./skills.ts"; import * as HostProcess from "@t3tools/shared/HostProcess"; import { resolveSelfInvocation, type SelfInvocation } from "@t3tools/shared/nodeRuntime"; import { @@ -251,6 +252,24 @@ export function makeGrokAcpAdapterFlavor( // still accepts image content blocks (verified with real screenshots). supportsImagePrompts: true, supportsCompaction: true, + // Grok expands only a leading `/name`, while the `$` picker inserts `$name` from the + // `grok inspect` catalog. Ask that catalog again so other `$` text is left alone. + rewriteUserText: (text, turnInput) => { + const mention = leadingGrokSkillMention(text); + if (mention === undefined) return Effect.succeed(text); + return discoverGrokSkills( + options.settings, + options.environment, + turnInput.runtimePolicy.cwd ?? undefined, + ).pipe( + Effect.map((skills) => + skills.some((skill) => skill.enabled && skill.name === mention.name) + ? `/${mention.name}${mention.rest}` + : text, + ), + Effect.orElseSucceed(() => text), + ); + }, resolveModelId: (selection) => resolveGrokAcpBaseModelId(selection.model), getModelContextWindow: (selection, session) => { if (selection.instanceId !== options.instanceId) return undefined; diff --git a/packages/provider-grok/src/server/skills.test.ts b/packages/provider-grok/src/server/skills.test.ts index 069dfa7597ae..f84940ecaee6 100644 --- a/packages/provider-grok/src/server/skills.test.ts +++ b/packages/provider-grok/src/server/skills.test.ts @@ -1,11 +1,11 @@ -import { describe, expect, it } from "@effect/vitest"; +import { assert, describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import type * as ChildProcess from "effect/process/ChildProcess"; import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; -import { discoverGrokSkills } from "./skills.ts"; +import { discoverGrokSkills, leadingGrokSkillMention } from "./skills.ts"; const inspectPayload = (skills: ReadonlyArray) => JSON.stringify({ skills }); @@ -199,3 +199,14 @@ describe("discoverGrokSkills", () => { }); }); }); + +describe("leadingGrokSkillMention", () => { + it.each([ + { text: " €deploy\nship it", mention: { name: "deploy", rest: "\nship it" } }, + { text: "$deploy", mention: { name: "deploy", rest: "" } }, + { text: "$25 off", mention: undefined }, + { text: "$deploy, then ship", mention: undefined }, + ])("reads $text", ({ text, mention }) => { + assert.deepEqual(leadingGrokSkillMention(text), mention); + }); +}); diff --git a/packages/provider-grok/src/server/skills.ts b/packages/provider-grok/src/server/skills.ts index f39d005f7321..cfc69727b3e0 100644 --- a/packages/provider-grok/src/server/skills.ts +++ b/packages/provider-grok/src/server/skills.ts @@ -9,12 +9,24 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as ChildProcess from "effect/process/ChildProcess"; +import { SKILL_MENTION_PATTERN } from "@t3tools/shared/composerInlineTokens"; import { resolveSpawnCommand } from "@t3tools/shared/shell"; import { spawnAndCollect } from "@t3tools/provider-core/server/snapshotProbe"; import { grokProbeEnvironment } from "./probeEnvironment.ts"; const GROK_SKILLS_PROBE_TIMEOUT_MS = 4_000; +// The composer's chip rule, anchored to the message start, so `$25` never names a skill. +const LEADING_SKILL_MENTION = new RegExp(`^\\s*${SKILL_MENTION_PATTERN.source}`, "u"); + +/** A message opening with a mention, such as `deploy` and ` ship it` for `$deploy ship it`. */ +export function leadingGrokSkillMention( + text: string, +): { readonly name: string; readonly rest: string } | undefined { + const match = LEADING_SKILL_MENTION.exec(text); + if (match?.[2] === undefined) return undefined; + return { name: match[2], rest: text.slice(match[0].length) }; +} class GrokSkillsProbeError extends Schema.TaggedError()( "GrokSkillsProbeError", From 553203c57b780cef9fb30ad835d759befe0dcb7c Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Sat, 24 Oct 2026 16:54:50 -0700 Subject: [PATCH 05/28] fix(server): long agent turns no longer load whole when a thread opens (#24589) Co-authored-by: luke2x <97411838+luke2x@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 --- .../TransferBudgetReport.integration.ts | 51 ++++ .../TransferBudgetV2Fixture.integration.ts | 237 +++++++++++++++++- .../transferBudgetV2.integration.test.ts | 49 +++- .../orchestration-v2/ProjectionStore.test.ts | 132 +++++++++- .../src/orchestration-v2/ProjectionStore.ts | 170 +++++++------ .../src/orchestration-v2/ThreadFind.test.ts | 15 +- .../src/orchestration-v2/ThreadStream.test.ts | 1 - .../src/orchestration-v2/ThreadStream.ts | 1 - .../threadHistoryPaging.test.ts | 178 ++++++++----- .../orchestration-v2/threadHistoryPaging.ts | 156 +++++++----- apps/server/src/ws.ts | 7 +- docs/internals/performance-regressions.md | 18 +- .../src/platform/orchestrationCache.test.ts | 14 +- .../src/platform/orchestrationCache.ts | 3 +- .../state/boundedThreadSnapshotHttp.test.ts | 1 - .../src/state/threads-atoms.test.ts | 1 - .../src/state/threads-sync.test.ts | 68 ++++- packages/contracts/src/orchestrationV2.ts | 2 - 18 files changed, 864 insertions(+), 240 deletions(-) diff --git a/apps/server/integration/TransferBudgetReport.integration.ts b/apps/server/integration/TransferBudgetReport.integration.ts index 17988142dd9f..172bd9e6ebe5 100644 --- a/apps/server/integration/TransferBudgetReport.integration.ts +++ b/apps/server/integration/TransferBudgetReport.integration.ts @@ -11,11 +11,17 @@ import { TRANSFER_MEASURED_MCP_RESULT_BYTES, TRANSFER_MEASURED_TOOLS, } from "./fixtures/transferBudget.ts"; +import { LONG_TURN_WORK_ROWS } from "./TransferBudgetV2Fixture.integration.ts"; export interface WebSocketCatchUpMeasurement extends WebSocketTransferTotals { readonly mode: "replay" | "snapshot"; } +export interface TimelineHttpMeasurement { + readonly http: HttpTransferMeasurement; + readonly rows: number; +} + export interface TransferBudgetRun { readonly provider: ProviderDriverKind; readonly threadSnapshot: HttpTransferMeasurement; @@ -27,6 +33,9 @@ export interface TransferBudgetRun { readonly reconnectShell: WebSocketCatchUpMeasurement; readonly measuredTurnSqlStatements: number; readonly reconnectSqlStatements: number; + /** The compact bounded snapshot web and mobile load when the long-turn thread opens. */ + readonly longTurnColdOpen: TimelineHttpMeasurement; + readonly longTurnHistoryPage: TimelineHttpMeasurement; } interface ProviderTransferBudget { @@ -50,6 +59,15 @@ const TRANSFER_BUDGETS: Readonly> = { claudeAgent: TRANSFER_BUDGET, }; +// Decoded bytes, not wire bytes: phones parse and keep the decoded JSON. About +// 30% above the observed 92 KB; without row budgets inside user turns the cold +// open carried all 920 rows (1.07 MB). Kept apart from TRANSFER_BUDGET because +// the PR comment validates that object's keys. +const LONG_TURN_BUDGET = { + decodedBytes: 120_000, + rows: 75, +}; + function totalWireBytes(run: TransferBudgetRun): number { return run.threadSnapshot.wireBytes + run.measuredTurnWebSocket.wireBytes; } @@ -144,6 +162,24 @@ function webSocketRows( ]; } +function longTurnRows( + provider: ProviderDriverKind, + phase: string, + measured: TimelineHttpMeasurement, +): string[] { + return [ + infoRow(provider, phase, "HTTP wire", measured.http.wireBytes), + row( + provider, + phase, + "HTTP decoded", + measured.http.decodedBodyBytes, + LONG_TURN_BUDGET.decodedBytes, + ), + row(provider, phase, "rows", measured.rows, LONG_TURN_BUDGET.rows, String), + ]; +} + export function transferBudgetViolations(runs: ReadonlyArray): string[] { const violations: string[] = []; for (const run of runs) { @@ -170,6 +206,18 @@ export function transferBudgetViolations(runs: ReadonlyArray) run.measuredTurnWebSocket.messages, budget.measuredTurnWebSocketMessages, ], + [ + "long-turn cold open decoded bytes", + run.longTurnColdOpen.http.decodedBodyBytes, + LONG_TURN_BUDGET.decodedBytes, + ], + ["long-turn cold open rows", run.longTurnColdOpen.rows, LONG_TURN_BUDGET.rows], + [ + "long-turn history page decoded bytes", + run.longTurnHistoryPage.http.decodedBodyBytes, + LONG_TURN_BUDGET.decodedBytes, + ], + ["long-turn history page rows", run.longTurnHistoryPage.rows, LONG_TURN_BUDGET.rows], ] as const; for (const [metric, observed, maximum] of checks) { if (observed > maximum) { @@ -187,6 +235,7 @@ export function formatTransferBudgetReport(runs: ReadonlyArray> { + const threadId = LONG_TURN_THREAD_ID; + const providerInstanceId = ProviderInstanceId.make(provider); + const modelSelection = { + instanceId: providerInstanceId, + model: provider === "codex" ? "gpt-5.4" : "claude-sonnet-4-6", + }; + let ordinal = 0; + const text = (turn: number, row: number, targetBytes: number) => + diagnosticOutput({ provider, turnIndex: 100 + turn, toolIndex: row, targetBytes }); + + const turn = (index: number, workRows: number): OrchestrationV2DomainEvent[] => { + const now = DateTime.makeUnsafe(`2026-06-02T00:${String(index).padStart(2, "0")}:00Z`); + const runId = RunId.make(`long-turn-run-${index}`); + const nodeId = NodeId.make(`long-turn-node-${index}`); + const common = { + threadId, + runId, + nodeId, + driver: provider, + providerInstanceId, + occurredAt: now, + }; + const run = { + id: runId, + threadId, + ordinal: index + 1, + providerInstanceId, + modelSelection, + providerThreadId: null, + userMessageId: MessageId.make(`long-turn-user-${index}`), + rootNodeId: nodeId, + activeAttemptId: null, + status: "running" as const, + requestedAt: now, + startedAt: now, + completedAt: null, + checkpointId: null, + contextHandoffId: null, + }; + const base = (row: string, title: string | null) => { + ordinal += 1; + return { + id: TurnItemId.make(`long-turn-item-${index}-${row}`), + threadId, + runId, + nodeId, + providerThreadId: null, + providerTurnId: null, + nativeItemRef: null, + parentItemId: null, + ordinal, + status: "completed" as const, + title, + startedAt: now, + completedAt: now, + updatedAt: now, + }; + }; + const events: OrchestrationV2DomainEvent[] = [ + { ...common, id: EventId.make(`long-turn-run-${index}`), type: "run.created", payload: run }, + ]; + const message = (role: "user" | "assistant", row: string, messageText: string) => { + const messageId = MessageId.make(`long-turn-${role}-${index}-${row}`); + const createdBy = role === "user" ? ("user" as const) : ("agent" as const); + events.push( + { + ...common, + id: EventId.make(`long-turn-message-${index}-${row}`), + type: "message.updated", + payload: { + id: messageId, + threadId, + runId, + nodeId, + role, + text: messageText, + attachments: [], + streaming: false, + createdAt: now, + updatedAt: now, + createdBy, + creationSource: "web", + }, + }, + { + ...common, + id: EventId.make(`long-turn-item-event-${index}-${row}`), + type: "turn-item.updated", + payload: + role === "user" + ? { + ...base(row, null), + type: "user_message", + createdBy, + creationSource: "web", + messageId, + inputIntent: "turn_start", + text: messageText, + attachments: [], + } + : { + ...base(row, null), + type: "assistant_message", + messageId, + text: messageText, + streaming: false, + }, + }, + ); + }; + const workItem = (row: number): OrchestrationV2TurnItem => { + if (row % 100 === 50) { + return { + ...base(String(row), "Checkpoint"), + type: "checkpoint", + checkpointId: CheckpointId.make(`long-turn-checkpoint-${index}-${row}`), + scopeId: CheckpointScopeId.make(`long-turn-scope-${index}`), + files: Array.from({ length: 40 }, (_, file) => ({ + path: `src/feature/module-${row}-${file}.ts`, + kind: "modified", + additions: file + 1, + deletions: file, + })), + }; + } + if (row % 100 === 99) { + return { + ...base(String(row), "Subagent"), + type: "subagent", + subagentId: NodeId.make(`long-turn-subagent-${index}-${row}`), + origin: "app_owned", + driver: provider, + providerInstanceId, + childThreadId: null, + prompt: text(index, row, 2_048), + result: text(index, row + 1, 3_072), + }; + } + switch (row % 8) { + case 0: + case 7: + return { + ...base(String(row), "Reasoning"), + type: "reasoning", + text: text(index, row, 1_536), + streaming: false, + }; + case 3: + return { + ...base(String(row), `Edit module ${row}`), + type: "file_change", + fileName: `src/feature/module-${row}.ts`, + additions: 12, + deletions: 4, + diffStr: text(index, row, 2_048), + }; + case 4: + return { + ...base(String(row), "MCP search"), + type: "dynamic_tool", + toolName: "mcp__test__search", + input: { query: `module ${row}` }, + output: { text: text(index, row, 6_144) }, + }; + case 5: + return { + ...base(String(row), null), + type: "assistant_message", + messageId: MessageId.make(`long-turn-progress-${index}-${row}`), + text: text(index, row, 600), + streaming: false, + }; + default: + return { + ...base(String(row), `Run check ${row}`), + type: "command_execution", + input: `vp test run src/feature/module-${row}.test.ts`, + output: text(index, row, 4_096), + exitCode: 0, + }; + } + }; + + message("user", "prompt", `Continue the feature work, step ${index}.`); + for (let row = 0; row < workRows; row++) { + events.push({ + ...common, + id: EventId.make(`long-turn-work-${index}-${row}`), + type: "turn-item.updated", + payload: workItem(row), + }); + } + message("assistant", "answer", text(index, workRows, 1_200)); + events.push({ + ...common, + id: EventId.make(`long-turn-complete-${index}`), + type: "run.updated", + payload: { ...run, status: "completed", completedAt: now }, + }); + return events; + }; + + return [ + [threadCreated(provider, threadId)], + turn(0, 4), + turn(1, 4), + turn(2, 4), + turn(3, LONG_TURN_WORK_ROWS), + ]; +} diff --git a/apps/server/integration/transferBudgetV2.integration.test.ts b/apps/server/integration/transferBudgetV2.integration.test.ts index 75b0be5ae57a..8417d852acfd 100644 --- a/apps/server/integration/transferBudgetV2.integration.test.ts +++ b/apps/server/integration/transferBudgetV2.integration.test.ts @@ -16,7 +16,9 @@ import { EnvironmentAuthenticatedPrincipal, ORCHESTRATION_V2_WS_METHODS, OrchestrationV2RpcSchemas, + OrchestrationV2ThreadBoundedSnapshot, OrchestrationV2ThreadDetailSnapshot, + OrchestrationV2ThreadHistoryPage, OrchestrationV2ShellSnapshot, OrchestrationV2GetThreadProjectionError, OrchestrationV2GetShellSnapshotError, @@ -63,11 +65,23 @@ import { type TransferBudgetRun, } from "./TransferBudgetReport.integration.ts"; import { TRANSFER_HISTORY_TURN_COUNT } from "./fixtures/transferBudget.ts"; -import { THREAD_ID, threadCreated, turnEvents } from "./TransferBudgetV2Fixture.integration.ts"; +import { + LONG_TURN_THREAD_ID, + longTurnThreadBatches, + THREAD_ID, + threadCreated, + turnEvents, +} from "./TransferBudgetV2Fixture.integration.ts"; const decodeThreadSnapshot = Schema.decodeUnknownEffect( Schema.fromJsonString(Schema.toCodecJson(OrchestrationV2ThreadDetailSnapshot)), ); +const decodeBoundedSnapshot = Schema.decodeUnknownEffect( + Schema.fromJsonString(Schema.toCodecJson(OrchestrationV2ThreadBoundedSnapshot)), +); +const decodeHistoryPage = Schema.decodeUnknownEffect( + Schema.fromJsonString(Schema.toCodecJson(OrchestrationV2ThreadHistoryPage)), +); const decodeShellSnapshot = Schema.decodeUnknownEffect( Schema.fromJsonString(Schema.toCodecJson(OrchestrationV2ShellSnapshot)), ); @@ -87,6 +101,10 @@ const layerManagement = Layer.unwrap( getThreadSnapshot: (id) => projections.getThreadSnapshot(id).pipe(Effect.orDie), getThreadSnapshotWindow: (id, options) => projections.getThreadSnapshotWindow(id, options).pipe(Effect.orDie), + getThreadHistoryPage: (id, cursor, throughEntryId, conversationOnly) => + projections + .getThreadHistoryPage(id, cursor, throughEntryId, conversationOnly) + .pipe(Effect.orDie), getThreadShell: (id) => projections.getThreadShell(id).pipe(Effect.orDie), getShellSnapshot: (options) => projections.getShellSnapshot(options).pipe(Effect.orDie), listActiveSubagentThreadIds: () => @@ -331,7 +349,29 @@ it.live("reports V2 thread HTTP and WebSocket transfer budgets", () => const shellMode = yield* synchronized(rsq); const reconnectThread = { ...resumedThread.recorder.totals(), mode: threadMode }; const reconnectShell = { ...resumedShell.recorder.totals(), mode: shellMode }; + const reconnectSqlStatements = counter.count() - reconnectSqlStart; assert.equal(threadMode, "snapshot"); + + for (const events of longTurnThreadBatches(provider)) yield* sink.write({ events }); + const longTurnColdOpen = yield* measureHttpGet({ + url: `${base}/api/orchestration/threads/${LONG_TURN_THREAD_ID}/bounded?compactTurnItems=1`, + headers: { [ORCHESTRATION_PROTOCOL_HEADER]: String(ORCHESTRATION_PROTOCOL_VERSION) }, + }); + assert.equal(longTurnColdOpen.status, 200); + const coldOpen = yield* decodeBoundedSnapshot( + Buffer.from(longTurnColdOpen.decodedBody).toString(), + ); + const cursor = coldOpen.historyCursor; + if (cursor === null) return yield* Effect.die("Expected older long-turn history"); + const longTurnHistoryPage = yield* measureHttpGet({ + url: `${base}/api/orchestration/threads/${LONG_TURN_THREAD_ID}/history?cursor=${encodeURIComponent(cursor)}`, + headers: { [ORCHESTRATION_PROTOCOL_HEADER]: String(ORCHESTRATION_PROTOCOL_VERSION) }, + }); + assert.equal(longTurnHistoryPage.status, 200); + const historyPage = yield* decodeHistoryPage( + Buffer.from(longTurnHistoryPage.decodedBody).toString(), + ); + assert.isTrue(historyPage.hasMoreHistory); return { provider, threadSnapshot, @@ -342,7 +382,12 @@ it.live("reports V2 thread HTTP and WebSocket transfer budgets", () => measuredTurnSqlStatements, reconnectThread, reconnectShell, - reconnectSqlStatements: counter.count() - reconnectSqlStart, + reconnectSqlStatements, + longTurnColdOpen: { + http: longTurnColdOpen, + rows: coldOpen.projection.visibleTurnItems.length, + }, + longTurnHistoryPage: { http: longTurnHistoryPage, rows: historyPage.items.length }, } satisfies TransferBudgetRun; }).pipe( Effect.provide(Layer.fresh(layerServices).pipe(Layer.provideMerge(NodeServices.layer))), diff --git a/apps/server/src/orchestration-v2/ProjectionStore.test.ts b/apps/server/src/orchestration-v2/ProjectionStore.test.ts index 14fed37c0618..419e4f9d4eb2 100644 --- a/apps/server/src/orchestration-v2/ProjectionStore.test.ts +++ b/apps/server/src/orchestration-v2/ProjectionStore.test.ts @@ -40,8 +40,10 @@ import * as ProjectionStore from "./ProjectionStore.ts"; import { buildBoundedThreadProjection, decodeThreadHistoryCursor, + encodeThreadHistoryCursor, selectHistoryPageFromCursor, THREAD_HISTORY_PAGE_POLICY, + THREAD_HISTORY_TURN_SNAPSHOT_ROW_LIMIT, } from "./threadHistoryPaging.ts"; const layerTest = Layer.mergeAll( @@ -1529,6 +1531,126 @@ it.layer(layerTest)("ProjectionStoreV2", (it) => { [baselineId], ); } + const humanWindow = () => + projectionStore.getThreadSnapshotWindow(threadId, { + rowLimit: 77, + userTurnLimit: THREAD_HISTORY_PAGE_POLICY.maxUserTurns, + }); + assert.lengthOf( + (yield* humanWindow()).projection.turnItems, + THREAD_HISTORY_TURN_SNAPSHOT_ROW_LIMIT, + ); + // With the newest user turn 1,000 rows back, the window pages from inside it. + const setNewestTurnType = (type: "command_execution" | "user_message") => sql` + UPDATE orchestration_v2_projection_turn_items + SET type = ${type}, payload_json = json_set(payload_json, '$.type', ${type}) + WHERE thread_id = ${threadId} AND ordinal = 1000 + `; + yield* setNewestTurnType("command_execution"); + assert.lengthOf((yield* humanWindow()).projection.turnItems, 77); + yield* setNewestTurnType("user_message"); + + // Fewer than 75 rows still need a byte pass after materializing wire payloads. + yield* sql` + UPDATE orchestration_v2_projection_turn_items + SET type = 'assistant_message', payload_json = json_set(payload_json, + '$.type', 'assistant_message', '$.text', ${"x".repeat(40_000)}, + '$.messageId', turn_item_id, '$.streaming', json('false')) + WHERE thread_id = ${threadId} AND ordinal BETWEEN 2 AND 70 + `; + const byteCursor = encodeThreadHistoryCursor({ + snapshotSequence: 0, + sourceThreadId: threadId, + sourceItemId: TurnItemId.make("turn-item:bounded-sql-history:71"), + position: 70, + }); + const bytePage = yield* projectionStore.getThreadHistoryPage(threadId, byteCursor); + assert.isAbove(bytePage.items.length, 0); + assert.isBelow(bytePage.items.length, 70); + assert.isAtMost( + Buffer.byteLength(JSON.stringify(bytePage.items), "utf8"), + THREAD_HISTORY_PAGE_POLICY.maxEncodedBytes, + ); + const byteIds = bytePage.items.map((row) => String(row.sourceItemId)); + let byteNext = bytePage.nextCursor; + for (let pages = 0; byteNext !== null; pages += 1) { + assert.isBelow(pages, 70); + const page = yield* projectionStore.getThreadHistoryPage(threadId, byteNext); + assert.isAbove(page.items.length, 0); + byteIds.unshift(...page.items.map((row) => String(row.sourceItemId))); + byteNext = page.nextCursor; + } + assert.deepEqual( + byteIds, + Array.from({ length: 70 }, (_, index) => `turn-item:bounded-sql-history:${index + 1}`), + ); + yield* sql` + UPDATE orchestration_v2_projection_turn_items + SET type = 'command_execution', payload_json = json_set(payload_json, '$.type', 'command_execution') + WHERE thread_id = ${threadId} AND ordinal BETWEEN 2 AND 70 + `; + + // A targeted page that needs more than 20 human turns must still reach its target + // after the byte pass re-bounds it. + yield* sql` + UPDATE orchestration_v2_projection_turn_items + SET type = 'user_message', payload_json = json_set(payload_json, + '$.type', 'user_message', '$.createdBy', 'user', '$.creationSource', 'web', + '$.inputIntent', 'turn_start', '$.messageId', turn_item_id, '$.text', 'Turn', + '$.attachments', json('[]')) + WHERE thread_id = ${threadId} AND ordinal BETWEEN 600 AND 624 + `; + const targetedPage = yield* projectionStore.getThreadHistoryPage( + threadId, + encodeThreadHistoryCursor({ + snapshotSequence: 0, + sourceThreadId: threadId, + sourceItemId: TurnItemId.make("turn-item:bounded-sql-history:625"), + position: 624, + }), + "turn-item:bounded-sql-history:600", + ); + assert.strictEqual( + String(targetedPage.items[0]?.sourceItemId), + "turn-item:bounded-sql-history:600", + ); + yield* sql` + UPDATE orchestration_v2_projection_turn_items + SET type = 'command_execution', payload_json = json_set(payload_json, '$.type', 'command_execution') + WHERE thread_id = ${threadId} AND ordinal BETWEEN 600 AND 624 + `; + + // A turn split by the row budget keeps an interrupt result's request on the same page. + yield* sql` + UPDATE orchestration_v2_projection_turn_items + SET run_id = 'run:bounded-sql-history:500', + type = CASE ordinal WHEN 500 THEN 'run_interrupt_request' ELSE 'run_interrupt_result' END, + payload_json = json_set(payload_json, + '$.runId', 'run:bounded-sql-history:500', '$.message', 'Stop', + '$.type', CASE ordinal WHEN 500 THEN 'run_interrupt_request' ELSE 'run_interrupt_result' END) + WHERE thread_id = ${threadId} AND ordinal IN (500, 580) + `; + const interruptPage = yield* projectionStore.getThreadHistoryPage( + threadId, + encodeThreadHistoryCursor({ + snapshotSequence: 0, + sourceThreadId: threadId, + sourceItemId: TurnItemId.make("turn-item:bounded-sql-history:590"), + position: 589, + }), + ); + const interruptIds = interruptPage.items.map((row) => String(row.sourceItemId)); + assert.include(interruptIds, "turn-item:bounded-sql-history:580"); + assert.include(interruptIds, "turn-item:bounded-sql-history:500"); + assert.notInclude(interruptIds, "turn-item:bounded-sql-history:501"); + yield* sql` + UPDATE orchestration_v2_projection_turn_items + SET run_id = 'run:bounded-sql-history:' || ordinal, type = 'command_execution', + payload_json = json_set(payload_json, + '$.runId', 'run:bounded-sql-history:' || ordinal, '$.type', 'command_execution') + WHERE thread_id = ${threadId} AND ordinal IN (500, 580) + `; + const retainedRequestPlan = yield* sql<{ readonly detail: string }>` EXPLAIN QUERY PLAN WITH selected AS ( @@ -1571,9 +1693,9 @@ it.layer(layerTest)("ProjectionStoreV2", (it) => { const sqlPageLimit = THREAD_HISTORY_PAGE_POLICY.maxItems + 2; const initialSnapshot = yield* projectionStore.getThreadSnapshotWindow(threadId, { rowLimit: sqlPageLimit, + userTurnLimit: THREAD_HISTORY_PAGE_POLICY.maxUserTurns, }); const initialPage = buildBoundedThreadProjection({ - policy: { ...THREAD_HISTORY_PAGE_POLICY, maxUserTurns: undefined }, projection: initialSnapshot.projection, snapshotSequence: initialSnapshot.snapshotSequence, }); @@ -1586,10 +1708,14 @@ it.layer(layerTest)("ProjectionStoreV2", (it) => { const anchorItemId = TurnItemId.make(decodeThreadHistoryCursor(cursor).si); const snapshot = yield* projectionStore.getThreadSnapshotWindow(threadId, { rowLimit: sqlPageLimit, + userTurnLimit: 20, anchorItemId, }); + assert.isAtMost( + snapshot.projection.visibleTurnItems.length, + THREAD_HISTORY_TURN_SNAPSHOT_ROW_LIMIT, + ); const page = selectHistoryPageFromCursor({ - policy: { ...THREAD_HISTORY_PAGE_POLICY, maxUserTurns: undefined }, items: snapshot.projection.visibleTurnItems, cursor, snapshotSequence: snapshot.snapshotSequence, @@ -1599,7 +1725,7 @@ it.layer(layerTest)("ProjectionStoreV2", (it) => { cursor = page.nextCursor; } - assert.isAtLeast(pageCount, 4); + assert.isAtLeast(pageCount, 3); assert.lengthOf(loadedIds, 1_000); assert.strictEqual(new Set(loadedIds).size, 1_000); assert.deepEqual( diff --git a/apps/server/src/orchestration-v2/ProjectionStore.ts b/apps/server/src/orchestration-v2/ProjectionStore.ts index 438cf79138dd..4ddc34ae4a4f 100644 --- a/apps/server/src/orchestration-v2/ProjectionStore.ts +++ b/apps/server/src/orchestration-v2/ProjectionStore.ts @@ -96,10 +96,12 @@ import { isConversationHistoryItem, threadHistoryTurnStarts, THREAD_HISTORY_MAX_RAW_TURNS, + missingInterruptRequests, + olderHistoryPagePolicy, selectHistoryPageFromCursor, selectRecentTimelineWindow, THREAD_HISTORY_PAGE_POLICY, - OLDER_THREAD_USER_TURN_LIMIT, + THREAD_HISTORY_TURN_SNAPSHOT_ROW_LIMIT, } from "./threadHistoryPaging.ts"; export class ProjectionStoreApplyEventError extends Schema.TaggedError()( @@ -2992,6 +2994,17 @@ export const layer: Layer.Layer = ELSE 0 END AS ordinal FROM user_anchors + ), latest_user_turn AS ( + -- Mirrors selectOlderTimelinePage: whole turns while the + -- newest user turn fits the turn row budget, otherwise the + -- window pages from inside that turn with the row limit. + SELECT COUNT(*) AS row_count + FROM ( + SELECT 1 + FROM eligible + WHERE ordinal >= (SELECT MAX(ordinal) FROM user_anchors) + LIMIT ${THREAD_HISTORY_PAGE_POLICY.maxTurnItems + 1} + ) ), selected AS ( -- Choose and sort rows by ID, then fetch payloads in that -- order. A turn window can hold megabytes of tool output, and @@ -3002,7 +3015,9 @@ export const layer: Layer.Layer = ORDER BY ordinal DESC, turn_item_id DESC LIMIT CASE WHEN ${window.rowLimit} = 0 THEN 0 - WHEN (SELECT COUNT(*) FROM user_anchors) > 0 THEN -1 + WHEN (SELECT row_count FROM latest_user_turn) + BETWEEN 1 AND ${THREAD_HISTORY_PAGE_POLICY.maxTurnItems} + THEN ${THREAD_HISTORY_TURN_SNAPSHOT_ROW_LIMIT} ELSE ${window.rowLimit} END ), retained AS MATERIALIZED ( @@ -5478,84 +5493,85 @@ export const layer: Layer.Layer = FROM orchestration_events WHERE application_event_version = 2 AND aggregate_kind = 'thread' AND stream_id = ${threadId}`; const snapshotSequence = revisions[0]?.sequence ?? 0; - const page = yield* Effect.try({ - try: () => - selectHistoryPageFromCursor({ - items: index.visible.map((row, position) => ({ - ...row, - position, - canonicalPosition: position, - })), + const indexed = index.visible.map((row, position) => ({ + ...row, + position, + canonicalPosition: position, + })); + const selection = yield* Effect.try({ + try: () => { + const policy = olderHistoryPagePolicy({ items: indexed, cursor, throughEntryId }); + const page = selectHistoryPageFromCursor({ + items: indexed, cursor, snapshotSequence, rowEncodedBytes: () => 0, - throughEntryId, - }), + policy, + }); + return { policy, page }; + }, catch: (cause) => new ProjectionStoreReadError({ threadId, cause }), }); + const { policy, page } = selection; const end = (page.items.at(-1)?.canonicalPosition ?? -1) + 1; const hasUserTurns = index.visible .slice(0, end) .some((row) => isThreadHistoryUserTurn(row.item)); - const materialized = - conversationOnly && hasUserTurns - ? page.items.filter((row) => isConversationHistoryItem(row.item)) - : page.items; - const sources = yield* encodeTimelineSources( - materialized - .filter((row) => !row.synthetic) - .map((row) => ({ threadId: row.sourceThreadId, id: row.sourceItemId })), - ); - const payloads = yield* sql<{ - thread_id: string; - turn_item_id: string; - payload_json: string; - }>` + const materialize = Effect.fn("ProjectionStore.materializeHistoryRows")(function* ( + rows: ReadonlyArray<(typeof indexed)[number]>, + ) { + if (rows.length === 0) return []; + const sources = yield* encodeTimelineSources( + rows + .filter((row) => !row.synthetic) + .map((row) => ({ threadId: row.sourceThreadId, id: row.sourceItemId })), + ); + const payloads = yield* sql<{ + thread_id: string; + turn_item_id: string; + payload_json: string; + }>` SELECT item.thread_id, item.turn_item_id, item.payload_json FROM orchestration_v2_projection_turn_items item JOIN json_each(${sources}) wanted ON item.thread_id = json_extract(wanted.value, '$.threadId') AND item.turn_item_id = json_extract(wanted.value, '$.id')`; - const byIdentity = new Map( - payloads.map((row) => [`${row.thread_id}:${row.turn_item_id}`, row.payload_json]), - ); - const items = yield* Effect.forEach(materialized, (row) => - Effect.gen(function* () { - const payload = byIdentity.get(`${row.sourceThreadId}:${row.sourceItemId}`); - const item = - row.synthetic ?? - (payload === undefined - ? yield* new ProjectionStoreReadError({ threadId }) - : yield* decodeTurnItemPayload(payload)); - return { - position: row.canonicalPosition, - visibility: row.visibility, - sourceThreadId: row.sourceThreadId, - sourceItemId: row.sourceItemId, - item: projectTurnItemForWire(item), - }; - }), - ); - if (hasUserTurns) - return { - ...page, - snapshotSequence, - items: items.map((row, position) => ({ ...row, position })), - }; - const bounded = selectRecentTimelineWindow({ - items, - snapshotSequence, - policy: { - ...THREAD_HISTORY_PAGE_POLICY, - maxUserTurns: OLDER_THREAD_USER_TURN_LIMIT, - maxItems: - THREAD_HISTORY_PAGE_POLICY.maxItems * (throughEntryId === undefined ? 1 : 2), - }, + const byIdentity = new Map( + payloads.map((row) => [`${row.thread_id}:${row.turn_item_id}`, row.payload_json]), + ); + return yield* Effect.forEach(rows, (row) => + Effect.gen(function* () { + const payload = byIdentity.get(`${row.sourceThreadId}:${row.sourceItemId}`); + const item = + row.synthetic ?? + (payload === undefined + ? yield* new ProjectionStoreReadError({ threadId }) + : yield* decodeTurnItemPayload(payload)); + return { + position: row.canonicalPosition, + visibility: row.visibility, + sourceThreadId: row.sourceThreadId, + sourceItemId: row.sourceItemId, + item: projectTurnItemForWire(item), + }; + }), + ); }); + const items = yield* materialize( + conversationOnly && hasUserTurns + ? page.items.filter((row) => isConversationHistoryItem(row.item)) + : page.items, + ); + const bounded = selectRecentTimelineWindow({ items, snapshotSequence, policy }); + const requests = yield* materialize(missingInterruptRequests(indexed, bounded.items)); + const pageItems = [...requests, ...bounded.items].map((row, position) => ({ + ...row, + position, + })); return { snapshotSequence, items: conversationOnly - ? bounded.items.filter((row) => isConversationHistoryItem(row.item)) - : bounded.items, + ? pageItems.filter((row) => isConversationHistoryItem(row.item)) + : pageItems, nextCursor: bounded.hasMoreHistory ? bounded.nextCursor : page.nextCursor, hasMoreHistory: bounded.hasMoreHistory || page.hasMoreHistory, }; @@ -7383,21 +7399,26 @@ export const layerMemory: Layer.Layer = Layer.effect( return yield* new ProjectionStoreThreadNotFoundError({ threadId }); return yield* Effect.try({ try: () => { + const visible = projection.visibleTurnItems.map((row) => ({ + ...row, + item: projectTurnItemForWire(row.item), + })); const page = selectHistoryPageFromCursor({ - items: projection.visibleTurnItems.map((row) => ({ - ...row, - item: projectTurnItemForWire(row.item), - })), + items: visible, cursor, throughEntryId, snapshotSequence, }); + const items = [ + ...missingInterruptRequests(visible, page.items), + ...page.items, + ].map((row, position) => ({ ...row, position })); return { ...page, snapshotSequence, items: conversationOnly - ? page.items.filter((row) => isConversationHistoryItem(row.item)) - : page.items, + ? items.filter((row) => isConversationHistoryItem(row.item)) + : items, }; }, catch: (cause) => new ProjectionStoreReadError({ threadId, cause }), @@ -7448,7 +7469,16 @@ export const layerMemory: Layer.Layer = Layer.effect( ? rawStart : anchors.at(-anchorLimit)! : Math.max(0, anchorIndex - options.rowLimit); - const visibleTurnItems = candidates.slice(start); + const latestTurnRows = anchors.length > 0 ? anchorIndex - anchors.at(-1)! : 0; + const rowLimit = + options.rowLimit > 0 && + latestTurnRows > 0 && + latestTurnRows <= THREAD_HISTORY_PAGE_POLICY.maxTurnItems + ? THREAD_HISTORY_TURN_SNAPSHOT_ROW_LIMIT + : options.rowLimit; + const visibleTurnItems = candidates.slice( + Math.max(start, anchorIndex - Math.max(0, rowLimit)), + ); return { ...snapshot, projection: { ...snapshot.projection, visibleTurnItems }, diff --git a/apps/server/src/orchestration-v2/ThreadFind.test.ts b/apps/server/src/orchestration-v2/ThreadFind.test.ts index 3d261ed85e2f..6793421a6433 100644 --- a/apps/server/src/orchestration-v2/ThreadFind.test.ts +++ b/apps/server/src/orchestration-v2/ThreadFind.test.ts @@ -24,7 +24,11 @@ import * as SqlitePersistence from "../persistence/Sqlite.ts"; import * as ProjectionStore from "./ProjectionStore.ts"; import * as ProjectStore from "./ProjectStore.ts"; import * as EventStore from "./EventStore.ts"; -import { encodeThreadHistoryCursor, selectHistoryPageFromCursor } from "./threadHistoryPaging.ts"; +import { + encodeThreadHistoryCursor, + selectHistoryPageFromCursor, + THREAD_HISTORY_PAGE_POLICY, +} from "./threadHistoryPaging.ts"; import { projectTurnItemForWire } from "./WireProjection.ts"; const layerTest = Layer.mergeAll(EventStore.layer, ProjectionStore.layer, ProjectStore.layer).pipe( @@ -722,7 +726,7 @@ describe("V2 history materialization", () => { }).pipe(Effect.provide(layerTest)), ); - it.effect("pages complete turns without duplicating or skipping messages", () => + it.effect("pages long turns without duplicating or skipping messages", () => Effect.gen(function* () { const projection = yield* setup; const items = Array.from({ length: 45 }, (_, turn) => [ @@ -763,7 +767,12 @@ describe("V2 history materialization", () => { snapshotSequence: snapshot.snapshotSequence, }), }); - assert.equal(page.items[0]?.item.type, "user_message"); + // A turn larger than the byte budget is split, but only a lone oversized item may exceed it. + assert.isTrue( + page.items.length === 1 || + Buffer.byteLength(JSON.stringify(page.items), "utf8") <= + THREAD_HISTORY_PAGE_POLICY.maxEncodedBytes, + ); collected.unshift(...page.items.map((row) => String(row.sourceItemId))); cursor = page.nextCursor; } diff --git a/apps/server/src/orchestration-v2/ThreadStream.test.ts b/apps/server/src/orchestration-v2/ThreadStream.test.ts index 438a24743a73..a5059eada443 100644 --- a/apps/server/src/orchestration-v2/ThreadStream.test.ts +++ b/apps/server/src/orchestration-v2/ThreadStream.test.ts @@ -161,7 +161,6 @@ describe("decideThreadResume", () => { expect(snapshot.historyCursor).not.toBeNull(); expect(snapshot.hasMoreHistory).toBe(true); expect(snapshot.latestLocalTurnOrdinal).toBe(80); - expect(snapshot.payloadBudgetExceeded).toBe(false); }); it("rejects a 10 MiB raw replay even when its projected form fits the wire budget", () => { diff --git a/apps/server/src/orchestration-v2/ThreadStream.ts b/apps/server/src/orchestration-v2/ThreadStream.ts index 4ef21edd3b3c..7983093a3b9e 100644 --- a/apps/server/src/orchestration-v2/ThreadStream.ts +++ b/apps/server/src/orchestration-v2/ThreadStream.ts @@ -52,7 +52,6 @@ export function boundedSnapshotResponseFields(input: { historyCursor: bounded.historyCursor, hasMoreHistory: bounded.hasMoreHistory, latestLocalTurnOrdinal: bounded.latestLocalTurnOrdinal, - payloadBudgetExceeded: bounded.payloadBudgetExceeded, ...(compactProjection === null ? {} : { turnItemsOmitLocalVisible: true as const }), }; } diff --git a/apps/server/src/orchestration-v2/threadHistoryPaging.test.ts b/apps/server/src/orchestration-v2/threadHistoryPaging.test.ts index 4055fd85b7ae..38ad3b5c7de1 100644 --- a/apps/server/src/orchestration-v2/threadHistoryPaging.test.ts +++ b/apps/server/src/orchestration-v2/threadHistoryPaging.test.ts @@ -106,27 +106,6 @@ function interruptRow( }; } -function assistantRow( - text: string, - visibility: "local" | "inherited" = "local", -): OrchestrationV2ProjectedTurnItem { - const row = makeRow(0); - const sourceThreadId = visibility === "local" ? THREAD : ThreadId.make("parent-thread"); - return { - ...row, - visibility, - sourceThreadId, - item: { - ...row.item, - threadId: sourceThreadId, - type: "assistant_message", - messageId: MessageId.make("answer-0"), - text, - streaming: false, - }, - } as OrchestrationV2ProjectedTurnItem; -} - function makeProjection(visibleTurnItems: OrchestrationV2ProjectedTurnItem[]) { return { thread: { @@ -176,6 +155,65 @@ function makeProjection(visibleTurnItems: OrchestrationV2ProjectedTurnItem[]) { } describe("threadHistoryPaging", () => { + it("keeps a human turn whole up to the turn row budget and pages a longer one from inside", () => { + const humanTurn = (length: number) => { + const items = Array.from({ length }, (_, index) => makeRow(index)); + items[0] = { + ...items[0]!, + item: { + ...items[0]!.item, + type: "user_message", + createdBy: "user", + creationSource: "web", + inputIntent: "turn_start", + messageId: MessageId.make("long-human-turn"), + text: "Continue", + attachments: [], + }, + } as OrchestrationV2ProjectedTurnItem; + return items; + }; + + const whole = selectRecentTimelineWindow({ items: humanTurn(180), snapshotSequence: 1 }); + expect(whole.items).toHaveLength(180); + expect(whole.hasMoreHistory).toBe(false); + + const items = humanTurn(THREAD_HISTORY_PAGE_POLICY.maxTurnItems + 100); + const recent = selectRecentTimelineWindow({ items, snapshotSequence: 1 }); + expect(recent.items).toHaveLength(THREAD_HISTORY_PAGE_POLICY.maxItems); + const loaded = [...recent.items]; + let cursor = recent.nextCursor; + for (let pages = 0; cursor !== null; pages += 1) { + expect(pages).toBeLessThan(items.length); + const page = selectHistoryPageFromCursor({ items, cursor, snapshotSequence: 1 }); + expect(page.items.length).toBeGreaterThan(0); + expect(page.items.length).toBeLessThanOrEqual( + page.items[0]?.item.type === "user_message" + ? THREAD_HISTORY_PAGE_POLICY.maxTurnItems + : THREAD_HISTORY_PAGE_POLICY.maxItems, + ); + loaded.unshift(...page.items); + cursor = page.nextCursor; + } + expect(loaded.map((row) => row.sourceItemId)).toEqual(items.map((row) => row.sourceItemId)); + + const large = items + .slice(0, 12) + .map((row) => + row.item.type === "command_execution" + ? { ...row, item: { ...row.item, output: "x".repeat(200_000) } } + : row, + ); + const bounded = buildBoundedThreadProjection({ + projection: makeProjection(large), + snapshotSequence: 1, + }); + expect(bounded.projection.visibleTurnItems.length).toBeLessThan(large.length); + expect(boundedTimelineEncodedBytes(bounded.projection)).toBeLessThanOrEqual( + THREAD_HISTORY_PAGE_POLICY.maxEncodedBytes, + ); + }); + it("keeps background turns with user turns, with main's 150-turn fan-out ceiling", () => { const items = Array.from({ length: 161 }, (_, turn) => { const row = makeRow(turn * 2); @@ -195,13 +233,15 @@ describe("threadHistoryPaging", () => { }; return [prompt, makeRow(turn * 2 + 1)]; }).flat(); - const first = selectRecentTimelineWindow({ items, snapshotSequence: 1 }); + const policy = { ...THREAD_HISTORY_PAGE_POLICY, maxItems: 1_000, maxEncodedBytes: 10_000_000 }; + const first = selectRecentTimelineWindow({ items, snapshotSequence: 1, policy }); expect(first.items).toHaveLength(300); expect(first.items[0]?.sourceItemId).toBe("item-22"); const older = selectHistoryPageFromCursor({ items, cursor: first.nextCursor!, snapshotSequence: 1, + policy, }); expect(older.items).toHaveLength(22); expect(older.hasMoreHistory).toBe(false); @@ -244,13 +284,20 @@ describe("threadHistoryPaging", () => { inRun(run * 4 + 2, run, notification(`Steer ${run}`)), inRun(run * 4 + 3, run), ]).flat(); - const first = selectRecentTimelineWindow({ items, snapshotSequence: 1 }); + const policy = { + ...THREAD_HISTORY_PAGE_POLICY, + maxItems: 1_000, + maxTurnItems: 1_000, + maxEncodedBytes: 10_000_000, + }; + const first = selectRecentTimelineWindow({ items, snapshotSequence: 1, policy }); expect(first.items).toHaveLength(150 * 4 - 1); expect(first.items[0]?.sourceItemId).toBe(`item-${11 * 4 + 1}`); const older = selectHistoryPageFromCursor({ items, cursor: first.nextCursor!, snapshotSequence: 1, + policy, }); expect([...older.items, ...first.items].map((row) => row.sourceItemId)).toEqual( items.map((row) => row.sourceItemId), @@ -288,26 +335,46 @@ describe("threadHistoryPaging", () => { }); it("always includes at least one pathological oversized item", () => { - const items = [makeRow(0, { outputBytes: 2_000_000 }), makeRow(1, { outputBytes: 10 })]; - const page = selectRecentTimelineWindow({ - items, - snapshotSequence: 1, - policy: { maxItems: 50, maxEncodedBytes: 1_024 }, - }); - expect(page.items).toHaveLength(1); - expect(page.items[0]?.sourceItemId).toBe("item-1"); - expect(page.hasMoreHistory).toBe(true); - - const older = selectHistoryPageFromCursor({ - items, - cursor: page.nextCursor!, - snapshotSequence: 1, - policy: { maxItems: 50, maxEncodedBytes: 1_024 }, - }); - expect(older.items).toHaveLength(1); - expect(older.items[0]?.sourceItemId).toBe("item-0"); - expect(older.hasMoreHistory).toBe(false); - expect(older.nextCursor).toBeNull(); + for (const humanTurn of [false, true]) { + const oversized = makeRow(0, { outputBytes: 2_000_000 }); + const items = [ + humanTurn + ? ({ + ...oversized, + item: { + ...oversized.item, + type: "user_message", + createdBy: "user", + creationSource: "web", + inputIntent: "turn_start", + messageId: MessageId.make("oversized-human-turn"), + text: "x".repeat(2_000_000), + attachments: [], + }, + } as OrchestrationV2ProjectedTurnItem) + : oversized, + makeRow(1, { outputBytes: 10 }), + ]; + const policy = { ...THREAD_HISTORY_PAGE_POLICY, maxItems: 50, maxEncodedBytes: 1_024 }; + const page = selectRecentTimelineWindow({ items, snapshotSequence: 1, policy }); + expect(page.items).toHaveLength(1); + expect(page.items[0]?.sourceItemId).toBe("item-1"); + expect(page.hasMoreHistory).toBe(true); + + const older = selectHistoryPageFromCursor({ + items, + cursor: page.nextCursor!, + snapshotSequence: 1, + policy, + }); + expect(older.items).toHaveLength(1); + expect(older.items[0]?.sourceItemId).toBe("item-0"); + expect(older.hasMoreHistory).toBe(false); + expect(older.nextCursor).toBeNull(); + expect([...older.items, ...page.items].map((row) => row.sourceItemId)).toEqual( + items.map((row) => row.sourceItemId), + ); + } }); it("recovers identity-miss cursors when position is past a shrunken timeline", () => { @@ -557,7 +624,6 @@ describe("threadHistoryPaging", () => { const serializedBytes = Buffer.byteLength(JSON.stringify(bounded.projection), "utf8"); expect(serializedBytes).toBeLessThanOrEqual(THREAD_HISTORY_PAGE_POLICY.maxEncodedBytes); - expect(bounded.payloadBudgetExceeded).toBe(false); expect(bounded.projection.plans).toEqual([]); expect(bounded.projection.contextHandoffs).toEqual([]); expect(populated.plans).toHaveLength(120); @@ -566,7 +632,7 @@ describe("threadHistoryPaging", () => { ).toBe(2_097_152); }); - it("preserves oversized actionable state and reports the budget exception", () => { + it("preserves oversized actionable state", () => { const projection = makeProjection([makeRow(0)]); const actionable = { ...projection, @@ -585,30 +651,10 @@ describe("threadHistoryPaging", () => { const bounded = buildBoundedThreadProjection({ projection: actionable, snapshotSequence: 9 }); - expect(bounded.payloadBudgetExceeded).toBe(true); expect(bounded.projection.plans[0]).toEqual(actionable.plans[0]); expect(bounded.projection.visibleTurnItems).toEqual(actionable.visibleTurnItems); }); - it("flips overflow at the exact encoded size when timeline text fits the budget", () => { - // Inherited rows are encoded once, local rows twice; neither may overflow early. - for (const visibility of ["local", "inherited"] as const) { - const projection = makeProjection([assistantRow("a".repeat(20_000), visibility)]); - const build = (maxEncodedBytes: number) => - buildBoundedThreadProjection({ - projection, - snapshotSequence: 1, - policy: { maxItems: 75, maxEncodedBytes }, - }); - const bytes = Buffer.byteLength( - JSON.stringify(build(Number.MAX_SAFE_INTEGER).projection), - "utf8", - ); - expect(build(bytes).payloadBudgetExceeded).toBe(false); - expect(build(bytes - 1).payloadBudgetExceeded).toBe(true); - } - }); - it("keeps agent-only turns visible when checkpoint file lists fill the byte budget", () => { const items = Array.from({ length: 3 }, (_, turn) => { const first = makeRow(turn * 5); @@ -641,7 +687,6 @@ describe("threadHistoryPaging", () => { expect(bounded.projection.visibleTurnItems).toHaveLength(items.length); expect(bounded.hasMoreHistory).toBe(false); - expect(bounded.payloadBudgetExceeded).toBe(true); }); it("keeps paged historical plan detail in the turn item and only status in its artifact", () => { @@ -685,6 +730,5 @@ describe("threadHistoryPaging", () => { markdown: "", detailInTurnItem: true, }); - expect(bounded.payloadBudgetExceeded).toBe(false); }); }); diff --git a/apps/server/src/orchestration-v2/threadHistoryPaging.ts b/apps/server/src/orchestration-v2/threadHistoryPaging.ts index e0aa215f3f1e..dee44adacbb2 100644 --- a/apps/server/src/orchestration-v2/threadHistoryPaging.ts +++ b/apps/server/src/orchestration-v2/threadHistoryPaging.ts @@ -7,12 +7,15 @@ import type { } from "@t3tools/contracts"; /** - * Item/byte budgets only apply to histories without turn starts; tool activity - * must not split an ordinary conversation turn. + * Every window stops at the byte budget. A window that holds a user turn also + * stops at `maxUserTurns` or `maxTurnItems` rows, which keeps ordinary turns + * whole (V1 kept 500 activities). Any other window, such as an agent-driven + * thread or the inside of one very long turn, stops at `maxItems` rows. */ export const THREAD_HISTORY_PAGE_POLICY = { maxUserTurns: 10, maxItems: 75, + maxTurnItems: 500, maxEncodedBytes: 1_048_576, } as const; @@ -24,12 +27,16 @@ export function isConversationHistoryItem(item: Pick { - if ("text" in item) { - length += item.text.length; - } - return length > budget; - }; - return ( - projection.visibleTurnItems.some((row) => exceeds(row.item)) || - projection.turnItems.some(exceeds) - ); -} - export function projectedRowEncodedBytes(row: HistoryRow): number { return bytesOfJson(row); } @@ -210,8 +195,7 @@ export function isThreadHistoryUserTurn(item: HistoryRow["item"]): boolean { } /** - * Histories without turn starts use row budgets and always admit at least one - * row so oversized items cannot deadlock paging. + * Always admit at least one row so oversized items cannot deadlock paging. */ function selectOlderTimelinePage(input: { readonly items: ReadonlyArray; @@ -236,14 +220,17 @@ function selectOlderTimelinePage(input: { const turnLimit = candidates.some((row) => isThreadHistoryUserTurn(row.item)) ? policy.maxUserTurns : undefined; + const maxItems = + turnLimit === undefined ? policy.maxItems : (policy.maxTurnItems ?? policy.maxItems); for (let index = end - 1; index >= 0; index -= 1) { const row = input.items[index]!; - const rowBytes = turnLimit === undefined ? rowCost(row) : 0; + const rowBytes = rowCost(row); if ( selected.length > 0 && - (turnLimit === undefined - ? selected.length >= policy.maxItems || encodedBytes + rowBytes > policy.maxEncodedBytes - : userTurns >= turnLimit || rawTurns >= THREAD_HISTORY_MAX_RAW_TURNS) + (selected.length >= maxItems || + encodedBytes + rowBytes > policy.maxEncodedBytes || + (turnLimit !== undefined && + (userTurns >= turnLimit || rawTurns >= THREAD_HISTORY_MAX_RAW_TURNS))) ) { break; } @@ -252,6 +239,10 @@ function selectOlderTimelinePage(input: { if (isThreadHistoryUserTurn(row.item)) userTurns += 1; if (turnStarts[index]) rawTurns += 1; } + // Inside a turn longer than the window, no selected row starts a user turn. + // Later pages and the snapshot query see only such rows and use `maxItems`, + // so this page uses it too. + if (userTurns === 0) selected.splice(policy.maxItems); selected.reverse(); const oldest = selected[0]; @@ -307,6 +298,44 @@ function findCursorIndex( return Math.min(cursor.p, items.length); } +/** + * Older pages allow twice the turns, and a targeted page widens further so it + * reaches `throughEntryId`. Callers that re-bound a page must reuse this policy + * or they drop the target again. + */ +export function olderHistoryPagePolicy(input: { + readonly items: ReadonlyArray; + readonly cursor: string; + readonly policy?: ThreadHistoryPagePolicy | undefined; + readonly throughEntryId?: string | undefined; +}): ThreadHistoryPagePolicy { + const policy = input.policy ?? { + ...THREAD_HISTORY_PAGE_POLICY, + maxUserTurns: OLDER_THREAD_USER_TURN_LIMIT, + }; + if (input.throughEntryId === undefined) return policy; + const anchorIndex = findCursorIndex(input.items, decodeThreadHistoryCursor(input.cursor)); + const targetIndex = input.items.findIndex( + (row) => (row.item.messageId ?? row.item.id) === input.throughEntryId, + ); + if (targetIndex < 0 || targetIndex >= anchorIndex) return policy; + const turns = input.items + .slice(targetIndex, anchorIndex) + .filter((row) => isThreadHistoryUserTurn(row.item)).length; + return { + ...policy, + maxUserTurns: Math.min( + OLDER_THREAD_USER_TURN_LIMIT * 2, + Math.max( + OLDER_THREAD_USER_TURN_LIMIT, + turns + (isThreadHistoryUserTurn(input.items[targetIndex]!.item) ? 0 : 1), + ), + ), + maxItems: policy.maxItems * 2, + maxTurnItems: (policy.maxTurnItems ?? policy.maxItems) * 2, + }; +} + export function selectHistoryPageFromCursor(input: { readonly items: ReadonlyArray; readonly cursor: string; @@ -316,41 +345,42 @@ export function selectHistoryPageFromCursor(input: { readonly throughEntryId?: string | undefined; }): SelectTimelinePageResult { const decoded = decodeThreadHistoryCursor(input.cursor); - const anchorIndex = findCursorIndex(input.items, decoded); - let policy = input.policy ?? { - ...THREAD_HISTORY_PAGE_POLICY, - maxUserTurns: OLDER_THREAD_USER_TURN_LIMIT, - }; - if (input.throughEntryId !== undefined) { - const targetIndex = input.items.findIndex( - (row) => (row.item.messageId ?? row.item.id) === input.throughEntryId, - ); - if (targetIndex >= 0 && targetIndex < anchorIndex) { - const turns = input.items - .slice(targetIndex, anchorIndex) - .filter((row) => isThreadHistoryUserTurn(row.item)).length; - policy = { - ...policy, - maxUserTurns: Math.min( - OLDER_THREAD_USER_TURN_LIMIT * 2, - Math.max( - OLDER_THREAD_USER_TURN_LIMIT, - turns + (isThreadHistoryUserTurn(input.items[targetIndex]!.item) ? 0 : 1), - ), - ), - maxItems: policy.maxItems * 2, - }; - } - } return selectOlderTimelinePage({ items: input.items, - exclusiveEndIndex: anchorIndex, + exclusiveEndIndex: findCursorIndex(input.items, decoded), snapshotSequence: input.snapshotSequence, ...(input.rowEncodedBytes === undefined ? {} : { rowEncodedBytes: input.rowEncodedBytes }), - policy, + policy: olderHistoryPagePolicy(input), }); } +/** + * Row and byte budgets can split a turn between an interrupt result and its + * older request. Clients read a superseded result without a request as a + * legacy steer and hide it, so a page carries the requests its results need. + */ +export function missingInterruptRequests( + items: ReadonlyArray, + page: ReadonlyArray>, +): Row[] { + const runs = new Set(); + for (const row of page) { + if (row.item.type === "run_interrupt_result" && row.item.runId != null) + runs.add(row.item.runId); + } + for (const row of page) { + if (row.item.type === "run_interrupt_request" && row.item.runId != null) + runs.delete(row.item.runId); + } + if (runs.size === 0) return []; + return items.filter( + (row) => + row.item.type === "run_interrupt_request" && + row.item.runId != null && + runs.has(row.item.runId), + ); +} + function isLocalProjectedRow( projection: OrchestrationV2ThreadProjection, row: OrchestrationV2ProjectedTurnItem, @@ -529,11 +559,7 @@ export function buildBoundedThreadProjection(input: { policy.maxEncodedBytes / 2, policy.maxEncodedBytes - dependencyReserve - controlBytes - 1_024, ); - const windowPolicy: ThreadHistoryPagePolicy = { - maxUserTurns: policy.maxUserTurns, - maxItems: policy.maxItems, - maxEncodedBytes: windowBudget, - }; + const windowPolicy: ThreadHistoryPagePolicy = { ...policy, maxEncodedBytes: windowBudget }; const window = selectRecentTimelineWindow({ items: controlProjection.visibleTurnItems, @@ -604,9 +630,5 @@ export function buildBoundedThreadProjection(input: { historyCursor: window.nextCursor, hasMoreHistory: window.hasMoreHistory, latestLocalTurnOrdinal, - payloadBudgetExceeded: - controlBytes > policy.maxEncodedBytes || - timelineTextExceedsBudget(projection, policy.maxEncodedBytes) || - bytesOfJson(projection) > policy.maxEncodedBytes, }; } diff --git a/apps/server/src/ws.ts b/apps/server/src/ws.ts index 9a2dcc71b81b..b8113e7ca400 100644 --- a/apps/server/src/ws.ts +++ b/apps/server/src/ws.ts @@ -1968,13 +1968,12 @@ export const layerWsRpc = ( rowLimit: THREAD_HISTORY_SNAPSHOT_ROW_LIMIT, }) .pipe( - Effect.map((snapshot) => - projectThreadProjectionForWire( + Effect.map( + (snapshot) => buildBoundedThreadProjection({ - projection: snapshot.projection, + projection: projectThreadProjectionForWire(snapshot.projection), snapshotSequence: snapshot.snapshotSequence, }).projection, - ), ), Effect.mapError( (cause) => diff --git a/docs/internals/performance-regressions.md b/docs/internals/performance-regressions.md index 92ce89b7568f..1a9dfee13b82 100644 --- a/docs/internals/performance-regressions.md +++ b/docs/internals/performance-regressions.md @@ -12,8 +12,11 @@ client can produce reassuring timings while missing the active transport path. The v2 checks pin these invariants: -- Client cold opens target 75 recent timeline rows and about 1 MiB of encoded data. Required - control records and the at-least-one-row rule can exceed the byte target; it is not a hard cap. +- Cold opens and history pages stop at about 1 MiB of encoded rows. A window that holds a user + turn also stops at 10 user turns (20 on older pages) or 500 rows, so ordinary turns stay whole. + Any other window, including the inside of one turn longer than 500 rows, stops at 75 rows. The + snapshot query applies the same rule before it decodes payloads. Required control records and + the at-least-one-row rule can exceed the byte target; it is not a hard cap. - The bounded snapshot does not retain the full duplicate conversation-message table. - Older activity is fetched in bounded HTTP pages and merged without disturbing the live scroll window. @@ -29,8 +32,10 @@ The v2 checks pin these invariants: projects small can increase server allocations on repeated large tool updates. - Raw command output, dynamic-tool result bodies, and inline file-change bodies are omitted at the wire boundary, including small outputs. Explicit failure flags and bounded result IDs - preserve status and grouped action counts without shipping those bodies. Persisted events - remain complete; the existing diff endpoints still provide file content when requested. + preserve status and grouped action counts without shipping those bodies. Subagent prompts and + results, reasoning text, command lines, search results, and checkpoint file lists still ship. + Persisted events remain complete; the existing diff endpoints still provide file content when + requested. Explicit cross-environment transcript exports preserve full tool bodies so the destination agent can read the context. The export rejects timeline JSON above the file attachment limit before sending it; the client still applies its attachment limit to the complete file. @@ -57,7 +62,10 @@ transport performance fixtures validate contract encoding and compare pre-compre for the same synthetic workload, preserving historical application-object counts separately. These are neither compressed WebSocket captures nor measurements of server RSS, and command fixtures exclude unrelated settings calls and subscription events. Payload budgets belong in -these tests so regressions fail locally. +these tests so regressions fail locally. The transfer budget integration test +(`apps/server/integration/transferBudgetV2.integration.test.ts`) caps the decoded bytes and rows +of the compact bounded snapshot that web and mobile load, and of one older page, for a 900-row +agent turn. ## Event store and startup diff --git a/packages/client-runtime/src/platform/orchestrationCache.test.ts b/packages/client-runtime/src/platform/orchestrationCache.test.ts index eee72d9cbb3d..5ea3f2ee5bda 100644 --- a/packages/client-runtime/src/platform/orchestrationCache.test.ts +++ b/packages/client-runtime/src/platform/orchestrationCache.test.ts @@ -74,14 +74,20 @@ describe("orchestration cache envelopes", () => { expect(decoded.visibleTurnItems.find((entry) => entry.item.id === item.id)?.item).toEqual(item); }); - it("rejects thread snapshots saved before queued-run items were kept, but not shells", () => { - const staleThread = encodeStoredThreadSnapshotJson({ + it("rejects thread snapshots saved before human history was bounded, but not shells", () => { + const currentThread = encodeStoredThreadSnapshotJson({ schemaVersion: ORCHESTRATION_THREAD_CACHE_SCHEMA_VERSION, environmentId, threadId: v2ThreadId, snapshot: { snapshotSequence: 4, projection: v2Projection }, - }).replace(`"schemaVersion":${ORCHESTRATION_THREAD_CACHE_SCHEMA_VERSION}`, `"schemaVersion":3`); - expect(() => decodeStoredThreadSnapshotJson(staleThread)).toThrow(); + }); + for (const staleVersion of [3, 4]) { + const staleThread = currentThread.replace( + `"schemaVersion":${ORCHESTRATION_THREAD_CACHE_SCHEMA_VERSION}`, + `"schemaVersion":${staleVersion}`, + ); + expect(() => decodeStoredThreadSnapshotJson(staleThread)).toThrow(); + } const shell = encodeStoredShellSnapshot({ schemaVersion: ORCHESTRATION_CACHE_SCHEMA_VERSION, environmentId, diff --git a/packages/client-runtime/src/platform/orchestrationCache.ts b/packages/client-runtime/src/platform/orchestrationCache.ts index f0b95d3bb603..e7800e20bd33 100644 --- a/packages/client-runtime/src/platform/orchestrationCache.ts +++ b/packages/client-runtime/src/platform/orchestrationCache.ts @@ -10,7 +10,8 @@ import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; export const ORCHESTRATION_CACHE_SCHEMA_VERSION = 3 as const; -export const ORCHESTRATION_THREAD_CACHE_SCHEMA_VERSION = 4 as const; +// Older caches may contain human turns that bypassed server history budgets. +export const ORCHESTRATION_THREAD_CACHE_SCHEMA_VERSION = 5 as const; export const StoredOrchestrationShellSnapshot = Schema.Struct({ schemaVersion: Schema.Literal(ORCHESTRATION_CACHE_SCHEMA_VERSION), diff --git a/packages/client-runtime/src/state/boundedThreadSnapshotHttp.test.ts b/packages/client-runtime/src/state/boundedThreadSnapshotHttp.test.ts index 5caaab1459ca..52ce11411af7 100644 --- a/packages/client-runtime/src/state/boundedThreadSnapshotHttp.test.ts +++ b/packages/client-runtime/src/state/boundedThreadSnapshotHttp.test.ts @@ -115,7 +115,6 @@ const boundedBody = (compact: boolean) => ({ historyCursor: "bounded-cursor", hasMoreHistory: true, latestLocalTurnOrdinal: 2, - payloadBudgetExceeded: false, ...(compact ? { turnItemsOmitLocalVisible: true } : {}), }); diff --git a/packages/client-runtime/src/state/threads-atoms.test.ts b/packages/client-runtime/src/state/threads-atoms.test.ts index 01308c26d86d..b086612aa451 100644 --- a/packages/client-runtime/src/state/threads-atoms.test.ts +++ b/packages/client-runtime/src/state/threads-atoms.test.ts @@ -339,7 +339,6 @@ describe("createEnvironmentThreadStateAtoms", () => { historyCursor: "socket-older-1", hasMoreHistory: true, latestLocalTurnOrdinal: 4, - payloadBudgetExceeded: false, }); yield* Queue.offer(subscription.events, { kind: "synchronized" }); yield* observeState( diff --git a/packages/client-runtime/src/state/threads-sync.test.ts b/packages/client-runtime/src/state/threads-sync.test.ts index a772eaaf76c2..9956694aa193 100644 --- a/packages/client-runtime/src/state/threads-sync.test.ts +++ b/packages/client-runtime/src/state/threads-sync.test.ts @@ -20,6 +20,7 @@ import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Ref from "effect/Ref"; import * as Scope from "effect/Scope"; +import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; import * as TestClock from "effect/testing/TestClock"; @@ -36,6 +37,11 @@ import { import * as ConnectionWakeups from "../connection/wakeups.ts"; import * as EnvironmentSupervisor from "../connection/supervisor.ts"; import * as Persistence from "../platform/persistence.ts"; +import { + ORCHESTRATION_THREAD_CACHE_SCHEMA_VERSION, + StoredOrchestrationThreadSnapshot, + decodeOrDiscardOrchestrationCache, +} from "../platform/orchestrationCache.ts"; import * as RpcSession from "../rpc/session.ts"; import { v2Projection, v2ThreadId } from "./orchestrationV2TestFixtures.ts"; import { EMPTY_THREAD_HISTORY_META } from "./threadHistoryMerge.ts"; @@ -328,6 +334,65 @@ const deleted = (sequence = 3): OrchestrationV2ThreadStreamItem => { }; describe("EnvironmentThreads", () => { + it.effect("discards an oversized version-4 cache and requests a fresh bounded snapshot", () => + Effect.gen(function* () { + const item: OrchestrationV2TurnItem = { + id: TurnItemId.make("old-unbounded-cache-item"), + threadId: THREAD_ID, + runId: null, + nodeId: null, + providerThreadId: null, + providerTurnId: null, + nativeItemRef: null, + parentItemId: null, + ordinal: 1, + status: "completed", + title: null, + startedAt: BASE_PROJECTION.updatedAt, + completedAt: BASE_PROJECTION.updatedAt, + updatedAt: BASE_PROJECTION.updatedAt, + type: "system_notice", + message: "x".repeat(1_100_000), + }; + const schema = Schema.fromJsonString(StoredOrchestrationThreadSnapshot); + const encoded = yield* Schema.encodeEffect(schema)({ + schemaVersion: ORCHESTRATION_THREAD_CACHE_SCHEMA_VERSION, + environmentId: TARGET.environmentId, + threadId: THREAD_ID, + snapshot: { + snapshotSequence: CACHED_SNAPSHOT_SEQUENCE, + projection: { ...BASE_PROJECTION, turnItems: [item] }, + }, + }); + const stale = encoded.replace( + `"schemaVersion":${ORCHESTRATION_THREAD_CACHE_SCHEMA_VERSION}`, + '"schemaVersion":4', + ); + let discarded = false; + const h = yield* makeHarness({ + loadCached: decodeOrDiscardOrchestrationCache( + Schema.decodeUnknownEffect(schema)(stale).pipe( + Effect.map((stored) => Option.some(stored.snapshot)), + ), + Effect.sync(() => { + discarded = true; + }), + ), + httpSnapshot: { + _tag: "present", + snapshot: { snapshotSequence: CACHED_SNAPSHOT_SEQUENCE, projection: BASE_PROJECTION }, + history: { historyCursor: "fresh-bounded-cursor", hasMoreHistory: true }, + }, + }); + const state = yield* awaitThreadState(h.observed, (value) => value.status === "live"); + expect(discarded).toBe(true); + expect(yield* Ref.get(h.loaderCalls)).toBe(1); + expect(Option.getOrThrow(state.data)).toEqual(BASE_PROJECTION); + expect(state.history.historyCursor).toBe("fresh-bounded-cursor"); + expect(state.history.hasMoreHistory).toBe(true); + }), + ); + it.effect("loads the server thread when its local cache read fails", () => Effect.gen(function* () { const h = yield* makeHarness({ @@ -1084,7 +1149,6 @@ describe("EnvironmentThreads", () => { historyCursor: "socket-history-cursor", hasMoreHistory: true, latestLocalTurnOrdinal: 47, - payloadBudgetExceeded: false, }); const state = yield* awaitThreadState( @@ -1199,7 +1263,6 @@ describe("EnvironmentThreads", () => { historyCursor: "progressive-cursor", hasMoreHistory: true, latestLocalTurnOrdinal: 47, - payloadBudgetExceeded: false, }); yield* awaitThreadState( harness.observed, @@ -1308,7 +1371,6 @@ describe("EnvironmentThreads", () => { historyCursor: "compact-cursor", hasMoreHistory: true, latestLocalTurnOrdinal: 2, - payloadBudgetExceeded: false, turnItemsOmitLocalVisible: true, }); diff --git a/packages/contracts/src/orchestrationV2.ts b/packages/contracts/src/orchestrationV2.ts index a8d21845ad5f..b708f3187d1a 100644 --- a/packages/contracts/src/orchestrationV2.ts +++ b/packages/contracts/src/orchestrationV2.ts @@ -3324,7 +3324,6 @@ export const OrchestrationV2ThreadBoundedSnapshot = Schema.Struct({ historyCursor: Schema.NullOr(TrimmedNonEmptyString), hasMoreHistory: Schema.Boolean, latestLocalTurnOrdinal: Schema.NullOr(NonNegativeInt), - payloadBudgetExceeded: Schema.optional(Schema.Boolean), /** * Set only for clients that opted in: `projection.turnItems` omits the items * of local visible rows, which lead the full list. Clients must restore them @@ -3408,7 +3407,6 @@ export const OrchestrationV2ThreadStreamItem = Schema.Union([ historyCursor: Schema.optionalKey(Schema.NullOr(TrimmedNonEmptyString)), hasMoreHistory: Schema.optionalKey(Schema.Boolean), latestLocalTurnOrdinal: Schema.optionalKey(Schema.NullOr(NonNegativeInt)), - payloadBudgetExceeded: Schema.optionalKey(Schema.Boolean), turnItemsOmitLocalVisible: Schema.optionalKey(Schema.Literal(true)), }), Schema.Struct({ From 8bcef34f16ca2a08aa19c35dd64b71290bd4412f Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Sat, 24 Oct 2026 16:57:06 -0700 Subject: [PATCH 06/28] fix(server): analytics stop counting reconnects, retries, and dev servers (#24601) Co-authored-by: Claude Opus 5.5 --- .../Orchestrator.control-reads.test.ts | 3 +- .../src/orchestration-v2/Orchestrator.ts | 16 +++-- .../ProviderEventIngestor.test.ts | 10 +++ .../orchestration-v2/ProviderEventIngestor.ts | 16 +++++ .../RunExecutionService.test.ts | 46 ++++++++++--- .../orchestration-v2/RunExecutionService.ts | 19 ++++++ .../ThreadLaunchService.test.ts | 67 +++++++++++++++++++ .../orchestration-v2/ThreadLaunchService.ts | 10 ++- .../server/src/telemetry/FeatureUsage.test.ts | 65 ++++++++++++++---- apps/server/src/telemetry/FeatureUsage.ts | 51 +++++++------- apps/server/src/ws.ts | 51 ++++++++------ docs/internals/product-analytics.md | 31 ++++++--- scripts/dev-runner.test.ts | 25 +++++++ scripts/dev-runner.ts | 4 ++ scripts/smoke-cli-archive.ts | 3 + 15 files changed, 330 insertions(+), 87 deletions(-) diff --git a/apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts b/apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts index 6259fd78db62..3b1a8ec1ceca 100644 --- a/apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts +++ b/apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts @@ -1285,7 +1285,8 @@ it.effect("replays a thread.create receipt without changing the thread", () => const before = yield* projections.getThread(threadId); const replayed = yield* orchestrator.dispatch(create); assert.equal(replayed.sequence, original.sequence); - assert.deepEqual(replayed, original); + // Marked so client analytics do not count the retry again. + assert.deepEqual(replayed, { ...original, replayed: true }); assert.deepEqual(yield* projections.getThread(threadId), before); assert.equal(yield* orchestrator.getThreadEventSequence(threadId), original.sequence); }).pipe(Effect.provide(layerTest)), diff --git a/apps/server/src/orchestration-v2/Orchestrator.ts b/apps/server/src/orchestration-v2/Orchestrator.ts index 48972ce4cd44..351e804ac631 100644 --- a/apps/server/src/orchestration-v2/Orchestrator.ts +++ b/apps/server/src/orchestration-v2/Orchestrator.ts @@ -295,6 +295,8 @@ export type OrchestratorV2Error = typeof OrchestratorV2Error.Type; export interface OrchestratorV2DispatchResult { readonly sequence: number; readonly storedEvents: ReadonlyArray; + /** The command id was already accepted; analytics skip it. */ + readonly replayed?: true; } export interface OrchestratorV2Shape { @@ -11791,6 +11793,7 @@ const makeOrchestrator = Effect.fn("orchestrationV2.Orchestrator.layer")(functio return { sequence: receipt.resultSequence, storedEvents, + replayed: true, } satisfies OrchestratorV2DispatchResult; } @@ -11863,9 +11866,9 @@ const makeOrchestrator = Effect.fn("orchestrationV2.Orchestrator.layer")(functio if (plan.events.length === 0 && plan.effects.length === 0) { // A settle that ended nothing still records its receipt: a replayed Stop // effect then finds it instead of settling work that appeared since. - const resultSequence = yield* Effect.gen(function* () { + const { resultSequence, inserted } = yield* Effect.gen(function* () { const sequence = yield* eventSink.latestSequence({ threadId: commandThreadId(command) }); - yield* commandReceipts.insertIfAbsent({ + const inserted = yield* commandReceipts.insertIfAbsent({ commandId: command.commandId, threadId: commandThreadId(command), commandType: command.type, @@ -11874,7 +11877,7 @@ const makeOrchestrator = Effect.fn("orchestrationV2.Orchestrator.layer")(functio status: "accepted", error: null, }); - return sequence; + return { resultSequence: sequence, inserted }; }).pipe( Effect.mapError( (cause) => @@ -11885,7 +11888,11 @@ const makeOrchestrator = Effect.fn("orchestrationV2.Orchestrator.layer")(functio }), ), ); - return { sequence: resultSequence, storedEvents: [] } satisfies OrchestratorV2DispatchResult; + return { + sequence: resultSequence, + storedEvents: [], + ...(inserted ? {} : { replayed: true as const }), + } satisfies OrchestratorV2DispatchResult; } const acceptedAt = plan.events.at(-1)?.occurredAt ?? (yield* DateTime.now); const committed = yield* eventSink @@ -11936,6 +11943,7 @@ const makeOrchestrator = Effect.fn("orchestrationV2.Orchestrator.layer")(functio return { sequence: committed.receipt.resultSequence, storedEvents: committed.storedEvents, + ...(committed.committed ? {} : { replayed: true as const }), } satisfies OrchestratorV2DispatchResult; }); diff --git a/apps/server/src/orchestration-v2/ProviderEventIngestor.test.ts b/apps/server/src/orchestration-v2/ProviderEventIngestor.test.ts index 849cedded929..f3b54f33f337 100644 --- a/apps/server/src/orchestration-v2/ProviderEventIngestor.test.ts +++ b/apps/server/src/orchestration-v2/ProviderEventIngestor.test.ts @@ -233,6 +233,12 @@ it.effect("records accepted billed turn usage once without billing the context w modelSelection, runtimeMode: "full-access" as const, interactionMode: "default" as const, + origin: { + createdBy: "agent" as const, + creationSource: "provider" as const, + scheduled: false, + subagent: true, + }, }, event: { type: "provider_turn.updated" as const, driver: CODEX_DRIVER, providerTurn }, }; @@ -271,6 +277,10 @@ it.effect("records accepted billed turn usage once without billing the context w mixedModels: false, runtimeMode: "full-access", interactionMode: "default", + createdBy: "agent", + creationSource: "provider", + scheduled: false, + subagent: true, durationMs: 120, }); }).pipe(Effect.provide(layerTest.pipe(Layer.provide(layerAnalytics)))); diff --git a/apps/server/src/orchestration-v2/ProviderEventIngestor.ts b/apps/server/src/orchestration-v2/ProviderEventIngestor.ts index 8e916ab79319..47f34d35da96 100644 --- a/apps/server/src/orchestration-v2/ProviderEventIngestor.ts +++ b/apps/server/src/orchestration-v2/ProviderEventIngestor.ts @@ -9,6 +9,8 @@ import { type OrchestrationV2Subagent, type OrchestrationV2ThreadProjection, type ModelSelection, + type OrchestrationV2Actor, + type OrchestrationV2CreationSource, type RuntimeMode, type ProviderInteractionMode, ProviderInstanceId, @@ -77,6 +79,19 @@ export interface ProviderTurnAnalyticsContext { readonly modelSelection: ModelSelection; readonly runtimeMode?: RuntimeMode; readonly interactionMode?: ProviderInteractionMode; + readonly origin?: ProviderTurnOrigin; +} + +/** + * Where the run's starting message came from. Most turns start without a + * person (provider continuations, agent sends, delegated subagents), so + * reports need this to tell user turns apart. + */ +export interface ProviderTurnOrigin { + readonly createdBy: OrchestrationV2Actor; + readonly creationSource: OrchestrationV2CreationSource; + readonly scheduled: boolean; + readonly subagent: boolean; } export class ProviderTurnAnalytics extends Context.Reference<{ @@ -126,6 +141,7 @@ function providerTurnAnalyticsProperties(input: { ...(effort ? { effort } : {}), ...(input.context?.runtimeMode ? { runtimeMode: input.context.runtimeMode } : {}), ...(input.context?.interactionMode ? { interactionMode: input.context.interactionMode } : {}), + ...input.context?.origin, ...(input.providerTurn.startedAt && input.providerTurn.completedAt ? { durationMs: Math.max( diff --git a/apps/server/src/orchestration-v2/RunExecutionService.test.ts b/apps/server/src/orchestration-v2/RunExecutionService.test.ts index e7937f8a1fc9..89d83941bd8f 100644 --- a/apps/server/src/orchestration-v2/RunExecutionService.test.ts +++ b/apps/server/src/orchestration-v2/RunExecutionService.test.ts @@ -50,6 +50,11 @@ import * as RunFinalizationService from "./RunFinalizationService.ts"; import * as TurnItemPositionStore from "./TurnItemPositionStore.ts"; const driver = ProviderDriverKind.make("codex"); +const rootAppThread = (id: ThreadId) => + ({ + id, + lineage: { parentThreadId: null, relationshipToParent: null, rootThreadId: id }, + }) as OrchestrationV2AppThread; const layerTurnItemPositionsTest = Layer.mock(TurnItemPositionStore.TurnItemPositionStoreV2)({ allocate: () => Effect.succeed(1), @@ -775,7 +780,7 @@ it.effect("rechecks run ownership immediately before calling the provider", () = yield* runExecution.startRootRun({ commandId: CommandId.make("command:run-execution-start-guard"), - appThread: { id: threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(threadId), providerSessionId, session, run, @@ -830,7 +835,7 @@ it.effect("passes the thread's MCP app context to the provider under a safe key" yield* runExecution.startRootRun({ commandId: CommandId.make("command:run-execution-app-context"), - appThread: { id: threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(threadId), providerSessionId: ProviderSessionId.make("session:run-execution-app-context"), session, run: { @@ -934,7 +939,7 @@ it.effect("fails the run when its ownership check cannot be read before calling const runExecution = yield* RunExecutionService.RunExecutionServiceV2; yield* runExecution.startRootRun({ commandId: CommandId.make("command:run-execution-start-guard-read"), - appThread: { id: threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(threadId), providerSessionId: ProviderSessionId.make("session:run-execution-start-guard-read"), session: { events: Stream.never, @@ -1029,7 +1034,7 @@ it.effect( const attemptId = RunAttemptId.make(`attempt:compact-routing:${index}`); yield* runExecution.startRootRun({ commandId: CommandId.make(`command:compact-routing:${index}`), - appThread: { id: threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(threadId), providerSessionId: ProviderSessionId.make(`session:compact-routing:${index}`), session: { events: Stream.never, @@ -1145,7 +1150,7 @@ it.effect("starts the provider when checkpoint baseline capture fails", () => const runExecution = yield* RunExecutionService.RunExecutionServiceV2; yield* runExecution.startRootRun({ commandId: CommandId.make("command:run-execution-baseline-failure"), - appThread: { id: threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(threadId), providerSessionId, session: { events: Stream.never, @@ -1283,7 +1288,7 @@ it.effect.each(["failure", "interruption", "stale-attempt", "start-guard"] as co const runExecution = yield* RunExecutionService.RunExecutionServiceV2; yield* runExecution.startRootRun({ commandId: CommandId.make("command:run-execution-settings-failure"), - appThread: { id: threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(threadId), providerSessionId, session: { events: Stream.never, @@ -1399,6 +1404,7 @@ it.effect("ingests new member threads of an owned child after the root turn term const subagentNodeId = NodeId.make("node:run-execution-late-child:subagent"); const childMessageIngested = yield* Deferred.make(); const order = yield* Ref.make>([]); + const origins = yield* Ref.make>([]); const layerTest = RunExecutionService.layer.pipe( Layer.provide( Layer.mergeAll( @@ -1424,6 +1430,11 @@ it.effect("ingests new member threads of an owned child after the root turn term Layer.mock(ProviderEventIngestor.ProviderEventIngestorV2)({ ingestNormalized: (input) => Effect.gen(function* () { + const eventType = input.event.type; + yield* Ref.update(origins, (current) => [ + ...current, + [eventType, input.analyticsContext?.origin] as const, + ]); if ( input.event.type === "app_thread.created" && input.event.appThread.id === memberThreadId @@ -1559,7 +1570,7 @@ it.effect("ingests new member threads of an owned child after the root turn term const runExecution = yield* RunExecutionService.RunExecutionServiceV2; yield* runExecution.startRootRun({ commandId: CommandId.make("command:run-execution-late-child"), - appThread: { id: threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(threadId), providerSessionId, session: { events: Stream.fromIterable(events), @@ -1612,6 +1623,19 @@ it.effect("ingests new member threads of an owned child after the root turn term ); assert.isTrue(Option.isSome(observed), "child message was not ingested after root terminal"); assert.deepEqual(yield* Ref.get(order), ["root-finalized", "member-thread", "child-message"]); + // The run's message started the root; the parent agent started the child's turn. + const recorded = yield* Ref.get(origins); + assert.deepEqual(recorded[0], [ + "app_thread.created", + { createdBy: "user", creationSource: "web", scheduled: false, subagent: false }, + ]); + assert.deepEqual( + recorded.find(([type]) => type === "provider_turn.updated"), + [ + "provider_turn.updated", + { createdBy: "agent", creationSource: "provider", scheduled: false, subagent: true }, + ], + ); }), ); @@ -1704,7 +1728,7 @@ it.effect("ends a nested native subagent and its thread when the root run is int const runExecution = yield* RunExecutionService.RunExecutionServiceV2; yield* runExecution.startRootRun({ commandId: CommandId.make(`command:${key}`), - appThread: { id: threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(threadId), providerSessionId: ProviderSessionId.make(`session:${key}`), session: { events: Stream.fromIterable(events), @@ -2031,7 +2055,7 @@ it.effect( const runExecution = yield* RunExecutionService.RunExecutionServiceV2; yield* runExecution.startRootRun({ commandId: CommandId.make("command:subagent-interrupt-cascade"), - appThread: { id: ids.threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(ids.threadId), providerSessionId: ProviderSessionId.make("session:subagent-interrupt-cascade"), session: { events: Stream.empty, @@ -2816,7 +2840,7 @@ function captureRootRunTermination(input: { const runExecution = yield* RunExecutionService.RunExecutionServiceV2; const start = runExecution.startRootRun({ commandId: CommandId.make(`command:${input.key}`), - appThread: { id: ids.threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(ids.threadId), providerSessionId: ProviderSessionId.make(`session:${input.key}`), session: { events: Stream.empty, @@ -3312,7 +3336,7 @@ function runBackgroundItemScenario( const runExecution = yield* RunExecutionService.RunExecutionServiceV2; yield* runExecution.startRootRun({ commandId: CommandId.make(`command:${key}`), - appThread: { id: ids.threadId } as OrchestrationV2AppThread, + appThread: rootAppThread(ids.threadId), providerSessionId: ProviderSessionId.make(`session:${key}`), session: { events: Stream.empty, diff --git a/apps/server/src/orchestration-v2/RunExecutionService.ts b/apps/server/src/orchestration-v2/RunExecutionService.ts index 11ab94cefa69..f72c46a913fa 100644 --- a/apps/server/src/orchestration-v2/RunExecutionService.ts +++ b/apps/server/src/orchestration-v2/RunExecutionService.ts @@ -97,6 +97,14 @@ function isSettledSubagentStatus(status: OrchestrationV2Subagent["status"]): boo return !isOrchestrationV2WorkActive(status); } +/** A provider-native subagent's turns arrive on its parent's run, but the parent agent started them. */ +const NATIVE_SUBAGENT_TURN_ORIGIN: ProviderEventIngestor.ProviderTurnOrigin = { + createdBy: "agent", + creationSource: "provider", + scheduled: false, + subagent: true, +}; + const backgroundCapableTurnItemTypes: ReadonlySet = new Set([ "command_execution", "dynamic_tool", @@ -883,6 +891,12 @@ export const layer: Layer.Layer< return RunExecutionServiceV2.of({ startRootRun: Effect.fn("RunExecutionService.startRootRun")(function* (input) { + const rootTurnOrigin: ProviderEventIngestor.ProviderTurnOrigin = { + createdBy: input.message.createdBy, + creationSource: input.message.creationSource, + scheduled: input.message.scheduledTaskId !== undefined, + subagent: input.appThread.lineage.relationshipToParent === "subagent", + }; // Startup failure and stream shutdown can report the same attempt. const refreshAfterTurn = yield* Effect.cached( finalizationObserver.refreshAfterTurn(input.appThread.projectId).pipe( @@ -1375,6 +1389,11 @@ export const layer: Layer.Layer< modelSelection: input.modelSelection, runtimeMode: input.runtimePolicy.runtimeMode, interactionMode: input.runtimePolicy.interactionMode, + origin: + event.type === "provider_turn.updated" && + event.providerTurn.providerThreadId !== input.providerThread.id + ? NATIVE_SUBAGENT_TURN_ORIGIN + : rootTurnOrigin, }, providerSessionId: input.providerSessionId, providerInstanceId: input.run.providerInstanceId, diff --git a/apps/server/src/orchestration-v2/ThreadLaunchService.test.ts b/apps/server/src/orchestration-v2/ThreadLaunchService.test.ts index 0391412fe5f9..fbc6bceb68b9 100644 --- a/apps/server/src/orchestration-v2/ThreadLaunchService.test.ts +++ b/apps/server/src/orchestration-v2/ThreadLaunchService.test.ts @@ -1597,6 +1597,73 @@ it.effect("does not let a failing same-command caller strand a concurrent durabl }), ); +it.effect("reports one concurrent same-command launch as new and the rest as resumed", () => + Effect.gen(function* () { + // Both launches read no receipt before either one claims the thread. + const arrived = yield* Ref.make(0); + const bothRead = yield* Deferred.make(); + const harness = makeHarness({ + managedFolders: Layer.mock(ManagedProjectFolders.ManagedProjectFolders)({ + namedProjectsRoot: "/projects", + isScratchProject: () => Effect.succeed(false), + folderForThread: () => + Ref.updateAndGet(arrived, (count) => count + 1).pipe( + Effect.tap((count) => + count === 2 ? Deferred.succeed(bothRead, undefined) : Effect.void, + ), + Effect.andThen(Deferred.await(bothRead)), + Effect.as(Option.none()), + ), + }), + }); + yield* Effect.gen(function* () { + const launches = yield* ThreadLaunch.ThreadLaunchService; + const input = launchInput({ + command: "command:launch:concurrent-resumed", + thread: "thread:launch:concurrent-resumed", + }); + const results = yield* Effect.all([launches.launch(input), launches.launch(input)], { + concurrency: "unbounded", + }); + assert.deepEqual(results.map((result) => result.resumed).sort(), [false, true]); + }).pipe(Effect.provide(harness.layer)); + }), +); + +it.effect( + "does not report a retry as resumed when the earlier attempt only claimed the thread", + () => + Effect.gen(function* () { + const harness = makeHarness(); + yield* Effect.gen(function* () { + const launches = yield* ThreadLaunch.ThreadLaunchService; + const threads = yield* ThreadManagement.ThreadManagementService; + const input = launchInput({ + command: "command:launch:claimed-only", + thread: "thread:launch:claimed-only", + message: "Counted once", + }); + yield* threads.dispatch({ + type: "thread.create", + commandId: input.commandId, + threadId: input.threadId, + projectId: input.projectId, + title: input.title, + modelSelection: input.modelSelection, + runtimeMode: input.runtimeMode, + interactionMode: input.interactionMode, + branch: null, + worktreePath: null, + createdBy: input.createdBy, + creationSource: input.creationSource, + }); + const retried = yield* launches.launch(input); + assert.isFalse(retried.resumed); + assert.isTrue((yield* launches.launch(input)).resumed); + }).pipe(Effect.provide(harness.layer)); + }), +); + it.effect("schedules an accepted preparing message exactly once across concurrent retries", () => Effect.gen(function* () { const setupEntered = yield* Deferred.make(); diff --git a/apps/server/src/orchestration-v2/ThreadLaunchService.ts b/apps/server/src/orchestration-v2/ThreadLaunchService.ts index f1c3d432a10b..5f4f2f72b6d5 100644 --- a/apps/server/src/orchestration-v2/ThreadLaunchService.ts +++ b/apps/server/src/orchestration-v2/ThreadLaunchService.ts @@ -114,6 +114,7 @@ export interface ThreadLaunchPreparationInput { export interface ThreadLaunchResult { readonly threadId: ThreadId; readonly projection: OrchestrationV2ThreadProjection; + /** The launch's last write (the initial message, else the thread claim) was accepted before this call. */ readonly resumed: boolean; } @@ -974,6 +975,8 @@ const make = Effect.gen(function* () { creationSource: input.creationSource, }) .pipe(Effect.mapError(mapError(input, "dispatch-message", threadId))); + // A concurrent retry can read no receipt and still replay the dispatch. + messageWasAlreadyAccepted ||= dispatched.replayed === true; const runCreated = dispatched.storedEvents.find( (stored) => stored.event.type === "run.created", ); @@ -1034,7 +1037,12 @@ const make = Effect.gen(function* () { return { threadId, projection, - resumed: Option.isSome(launchReceipt) || messageWasAlreadyAccepted, + // An attempt that failed after claiming the thread recorded nothing, so + // only a repeat of the final write counts as resumed. + resumed: + input.initialMessage === undefined + ? Option.isSome(launchReceipt) || claimed.replayed === true + : messageWasAlreadyAccepted, }; }); }, diff --git a/apps/server/src/telemetry/FeatureUsage.test.ts b/apps/server/src/telemetry/FeatureUsage.test.ts index e19e6a1c8968..784eb670a20e 100644 --- a/apps/server/src/telemetry/FeatureUsage.test.ts +++ b/apps/server/src/telemetry/FeatureUsage.test.ts @@ -1,29 +1,68 @@ -import { ORCHESTRATION_V2_WS_METHODS, ThreadId, WS_METHODS } from "@t3tools/contracts"; +import { + ORCHESTRATION_V2_WS_METHODS, + OrchestrationV2Command, + WS_METHODS, +} from "@t3tools/contracts"; import { expect, it } from "@effect/vitest"; +import * as Schema from "effect/Schema"; -import { featureUsage } from "./FeatureUsage.ts"; +import { commandFeatureUsage, featureUsage } from "./FeatureUsage.ts"; -const dispatch = ORCHESTRATION_V2_WS_METHODS.dispatchCommand; -const threadId = ThreadId.make("thread-private"); +const command = Schema.decodeUnknownSync(OrchestrationV2Command); +const ids = { commandId: "command-private", threadId: "thread-private" }; it("ignores messages, housekeeping commands, and untracked RPCs", () => { - expect(featureUsage(dispatch, { type: "message.dispatch", text: "secret prompt" })).toBe( - undefined, - ); - expect(featureUsage(dispatch, { type: "thread.visit", threadId })).toBe(undefined); + expect( + commandFeatureUsage( + command({ + ...ids, + type: "message.dispatch", + messageId: "message-private", + text: "secret prompt", + attachments: [], + createdBy: "user", + creationSource: "web", + dispatchMode: { type: "start_immediately" }, + }), + ), + ).toBe(undefined); + expect( + commandFeatureUsage( + command({ ...ids, type: "thread.visit", visitedAt: "2026-10-24T00:00:00.000Z" }), + ), + ).toBe(undefined); expect(featureUsage(WS_METHODS.terminalWrite, { data: "rm -rf" })).toBe(undefined); }); -it("reads RPC variants from enums, never from paths or text", () => { - expect( - featureUsage(WS_METHODS.shellOpenInEditor, { cwd: "/Users/someone/secret", editor: "cursor" }), - ).toEqual({ feature: "editor.open", variant: "cursor" }); +it("leaves thread launches to client.thread.started", () => { expect( featureUsage(ORCHESTRATION_V2_WS_METHODS.launchThread, { title: "Private title", workspaceStrategy: { type: "worktree", baseRef: "main", branch: "secret-branch" }, }), - ).toEqual({ feature: "thread.launch", variant: "worktree" }); + ).toBe(undefined); +}); + +it("tells watching a pull request apart from unwatching it", () => { + const watch = (watching: boolean) => + commandFeatureUsage( + command({ + ...ids, + type: "thread.pull-request.watch", + host: "github.com", + repository: "owner/private", + number: 7, + watching, + }), + ); + expect(watch(true)).toEqual({ feature: "thread.pull_request.watch", variant: "on" }); + expect(watch(false)).toEqual({ feature: "thread.pull_request.watch", variant: "off" }); +}); + +it("reads RPC variants from enums, never from paths or text", () => { + expect( + featureUsage(WS_METHODS.shellOpenInEditor, { cwd: "/Users/someone/secret", editor: "cursor" }), + ).toEqual({ feature: "editor.open", variant: "cursor" }); expect(featureUsage(WS_METHODS.terminalOpen, { cwd: "/Users/someone/secret" })).toEqual({ feature: "terminal.open", }); diff --git a/apps/server/src/telemetry/FeatureUsage.ts b/apps/server/src/telemetry/FeatureUsage.ts index c5f4903c35a1..9c238c5f7697 100644 --- a/apps/server/src/telemetry/FeatureUsage.ts +++ b/apps/server/src/telemetry/FeatureUsage.ts @@ -1,8 +1,4 @@ -import { - ORCHESTRATION_V2_WS_METHODS, - type OrchestrationV2Command, - WS_METHODS, -} from "@t3tools/contracts"; +import { type OrchestrationV2Command, WS_METHODS } from "@t3tools/contracts"; export interface FeatureUsage { readonly feature: string; @@ -21,11 +17,14 @@ const use = (feature: string, variant?: string): FeatureUsage => * User commands sent through `orchestration.dispatchCommand` that represent a * feature choice. Housekeeping commands (visits, reorders, acknowledgements) * and `message.dispatch`, which `client.turn.requested` already counts, are - * left out. + * left out. The dispatch handler records these, not the RPC middleware, so a + * retried command id that changed nothing is not counted again. */ -const COMMAND_FEATURES: Partial< - Record FeatureUsage> -> = { +const COMMAND_FEATURES: { + readonly [Type in OrchestrationV2Command["type"]]?: ( + command: Extract, + ) => FeatureUsage; +} = { "checkpoint.rollback": (command) => ({ feature: "checkpoint.rollback", variant: command.restoreFiles === false ? "conversation_only" : "with_files", @@ -38,11 +37,11 @@ const COMMAND_FEATURES: Partial< "thread.pin": () => ({ feature: "thread.pin" }), "thread.settle": () => ({ feature: "thread.settle" }), "thread.pull-request.link": () => ({ feature: "thread.pull_request.link" }), - "thread.pull-request.watch": () => ({ feature: "thread.pull_request.watch" }), - "thread.runtime-mode.set": (command) => - use("thread.runtime_mode.set", literal(command, "runtimeMode")), + "thread.pull-request.watch": (command) => + use("thread.pull_request.watch", command.watching ? "on" : "off"), + "thread.runtime-mode.set": (command) => use("thread.runtime_mode.set", command.runtimeMode), "thread.interaction-mode.set": (command) => - use("thread.interaction_mode.set", literal(command, "interactionMode")), + use("thread.interaction_mode.set", command.interactionMode), "run.interrupt": () => ({ feature: "run.interrupt" }), "queued-message.promote-to-steer": () => ({ feature: "queue.steer" }), "queued-run.edit": () => ({ feature: "queue.edit" }), @@ -51,17 +50,9 @@ const COMMAND_FEATURES: Partial< /** * RPCs that represent a user starting a feature. Variants come only from * closed enums in the contracts, so no path, id, or free text can reach analytics. + * Thread launches are left out because `client.thread.started` counts them. */ const METHOD_FEATURES: Readonly FeatureUsage>> = { - [ORCHESTRATION_V2_WS_METHODS.launchThread]: (payload) => { - const strategy = payload.workspaceStrategy; - return use( - "thread.launch", - typeof strategy === "object" && strategy !== null - ? literal(strategy as Payload, "type") - : undefined, - ); - }, [WS_METHODS.terminalOpen]: () => ({ feature: "terminal.open" }), [WS_METHODS.previewOpen]: () => ({ feature: "preview.open" }), [WS_METHODS.deviceOpen]: () => ({ feature: "device.open" }), @@ -81,13 +72,17 @@ const METHOD_FEATURES: Readonly FeatureUsag [WS_METHODS.serverUpsertKeybinding]: () => ({ feature: "keybinding.customize" }), }; +/** The feature a dispatched command uses, or undefined when it is not a tracked feature. */ +export function commandFeatureUsage(command: OrchestrationV2Command): FeatureUsage | undefined { + // TypeScript cannot pair a union's tag with its own entry, so widen once here. + const mapping = COMMAND_FEATURES[command.type] as + | ((command: OrchestrationV2Command) => FeatureUsage) + | undefined; + return mapping?.(command); +} + /** The feature a WebSocket request uses, or undefined when it is not a tracked feature. */ export function featureUsage(method: string, payload: unknown): FeatureUsage | undefined { if (typeof payload !== "object" || payload === null) return undefined; - const input = payload as Payload; - if (method === ORCHESTRATION_V2_WS_METHODS.dispatchCommand) { - const type = literal(input, "type") as OrchestrationV2Command["type"] | undefined; - return type === undefined ? undefined : COMMAND_FEATURES[type]?.(input); - } - return METHOD_FEATURES[method]?.(input); + return METHOD_FEATURES[method]?.(payload as Payload); } diff --git a/apps/server/src/ws.ts b/apps/server/src/ws.ts index b8113e7ca400..f9f289ea30a8 100644 --- a/apps/server/src/ws.ts +++ b/apps/server/src/ws.ts @@ -229,7 +229,7 @@ import * as ProcessResourceMonitor from "./diagnostics/ProcessResourceMonitor.ts import * as ResourceTelemetry from "./resourceTelemetry/ResourceTelemetry.ts"; import * as HostResources from "./resourceTelemetry/HostResources.ts"; import * as AnalyticsService from "./telemetry/AnalyticsService.ts"; -import { featureUsage } from "./telemetry/FeatureUsage.ts"; +import { commandFeatureUsage, featureUsage } from "./telemetry/FeatureUsage.ts"; import type { TelemetryOwner } from "./telemetry/Identify.ts"; import * as UsageService from "./usage/UsageService.ts"; import * as TraceDiagnostics from "./diagnostics/TraceDiagnostics.ts"; @@ -1247,12 +1247,18 @@ export const layerWsRpc = ( const analytics = yield* AnalyticsService.AnalyticsService; const originProps = clientAnalyticsProps; const recordClientCommandAnalytics = (command: OrchestrationV2Command) => { - switch (command.type) { - case "message.dispatch": - return analytics.record("client.turn.requested", originProps).pipe(Effect.ignore); - default: - return Effect.void; + if (command.type === "message.dispatch") { + return analytics.record("client.turn.requested", originProps).pipe(Effect.ignore); } + const usage = commandFeatureUsage(command); + return usage === undefined + ? Effect.void + : analytics + .record("feature.used", { + ...usage, + ...(originProps.surface === undefined ? {} : { surface: originProps.surface }), + }) + .pipe(Effect.ignore); }; const threadLaunch = yield* ThreadLaunchService.ThreadLaunchService; const commandOutputHub = yield* CommandOutputHub.CommandOutputHub; @@ -1889,7 +1895,9 @@ export const layerWsRpc = ( ).pipe(Effect.provide(intakeContext)), ) .pipe( - Effect.tap(() => recordClientCommandAnalytics(command)), + Effect.tap((result) => + result.replayed ? Effect.void : recordClientCommandAnalytics(command), + ), Effect.map((result) => ({ sequence: result.sequence })), Effect.mapError((cause) => { const detail = userFacingDispatchErrorMessage(cause); @@ -2028,17 +2036,23 @@ export const layerWsRpc = ( }).pipe(Effect.provide(intakeContext)), ) .pipe( - Effect.tap(() => - analytics - .record("client.thread.started", originProps) - .pipe( - Effect.andThen( - input.initialMessage === undefined - ? Effect.void - : analytics.record("client.turn.requested", originProps), - ), - Effect.ignore, - ), + // A resumed launch is a retry of one already counted. + Effect.tap((result) => + result.resumed + ? Effect.void + : analytics + .record("client.thread.started", { + ...originProps, + workspaceStrategy: input.workspaceStrategy.type, + }) + .pipe( + Effect.andThen( + input.initialMessage === undefined + ? Effect.void + : analytics.record("client.turn.requested", originProps), + ), + Effect.ignore, + ), ), Effect.map((result) => ({ ...result, @@ -3233,7 +3247,6 @@ export const layer = Layer.unwrap( const clientOrigin = readClientConnectionOrigin(request); const clientAnalyticsProps = readClientAnalyticsProps(request); yield* sessions.recordClientConnection(session.sessionId, clientOrigin); - yield* analytics.record("client.connected", clientAnalyticsProps); yield* analytics.recordOwners(readClientOwners(request), "client"); const rpcWebSocketHttpEffect = yield* Effect.gen(function* () { const { protocol, httpEffect } = yield* RpcServer.makeProtocolWithHttpEffectWebsocket; diff --git a/docs/internals/product-analytics.md b/docs/internals/product-analytics.md index 023fe085a436..990e82ff4057 100644 --- a/docs/internals/product-analytics.md +++ b/docs/internals/product-analytics.md @@ -47,13 +47,17 @@ runs; use `surface` for the connected client. ## Interpreting events -Use `client.turn.requested` for active-use reports. `client.connected` counts -reconnects, so network behavior can inflate it. One identity can appear in several -client groups during a period; adding those groups double-counts users. - -Provider send and completion counts need not match. Providers can emit synthetic -turns without a send request. Collection is best effort, with no scan or backfill -of provider history. +Use `client.turn.requested` for active-use reports. There is no connection event, +because T3 Connect sessions expire hourly and each reconnect would count again. +A command whose id was already accepted is a retry, so it records nothing again. +One identity can appear in several client groups during a period; adding those +groups double-counts users. + +Provider send and completion counts need not match. Most completions start +without a person: provider continuations, agent sends, and delegated subagents. +`provider.turn.completed` carries the starting message's `createdBy` and +`creationSource`, plus `scheduled` and `subagent`; filter on them to count user +turns. Collection is best effort, with no scan or backfill of provider history. Token totals cover the main agent. Child agents and model rerouting prevent a turn from representing one provider/model combination's full cost. For provider @@ -66,8 +70,9 @@ Unknown counts stay absent. Partial usage contains valid observed counts but cannot establish a whole-turn total. Keep these distinctions when changing token normalization or building reports. -`feature.used` counts WebSocket requests that start a feature, observed in the -RPC authorization middleware after the request succeeds. +`feature.used` counts WebSocket requests that start a feature. RPCs are observed in +the RPC authorization middleware after the request succeeds; dispatched commands +are recorded by the dispatch handler, which can tell a retry apart. [Feature mapping](../../apps/server/src/telemetry/FeatureUsage.ts) allowlists the methods and commands, and takes variants only from closed contract enums, so paths, ids, and text never reach analytics. @@ -80,7 +85,9 @@ Pi, and ACP agents list models from user configuration, such as local Ollama tags, so their models stay out. Handoff settings come from closed enums and booleans in tool arguments; prompts, titles, and ids are never read. Thread ids are used only to look up the threads on each side and never leave the server, -which is also why tool events carry no per-thread sequence. +which is also why tool events carry no per-thread sequence. A handoff to several +threads, such as `create_threads`, records one `mcp.tool.invoked` per target, each +repeating the call's outcome and duration, so event counts are not call counts. ## Delivery @@ -98,3 +105,7 @@ Keep analytics payloads to product metadata and normalized measurements. Do not send prompts, authentication material, raw provider payloads, user-assigned device names, or conversation identifiers. Client metadata is best effort; invalid values must not reject a connection. PostHog person profiles remain disabled. + +Dev-runner servers and the CI archive smoke test turn telemetry off, which also +stops relay tracing, because each would count as a new install. Set +`T3CODE_TELEMETRY_ENABLED=true` to test analytics or relay tracing from a dev server. diff --git a/scripts/dev-runner.test.ts b/scripts/dev-runner.test.ts index 95b43ddd735a..a46a008973db 100644 --- a/scripts/dev-runner.test.ts +++ b/scripts/dev-runner.test.ts @@ -90,6 +90,31 @@ it.layer(NodeServices.layer)("dev-runner", (it) => { }), ); + it.effect("turns product analytics off unless the developer opts in", () => + Effect.gen(function* () { + const input = { + mode: "dev", + serverOffset: 0, + webOffset: 0, + t3Home: undefined, + browser: undefined, + autoBootstrapProjectFromCwd: undefined, + logWebSocketEvents: undefined, + host: undefined, + port: undefined, + devUrl: undefined, + } as const; + const byDefault = yield* createDevRunnerEnv({ ...input, baseEnv: {} }); + const optedIn = yield* createDevRunnerEnv({ + ...input, + baseEnv: { T3CODE_TELEMETRY_ENABLED: "true" }, + }); + + assert.equal(byDefault.T3CODE_TELEMETRY_ENABLED, "false"); + assert.equal(optedIn.T3CODE_TELEMETRY_ENABLED, "true"); + }), + ); + it.effect("strips inherited service-launcher context", () => Effect.gen(function* () { const env = yield* createDevRunnerEnv({ diff --git a/scripts/dev-runner.ts b/scripts/dev-runner.ts index ff09a66e9da5..e655e34e26a6 100644 --- a/scripts/dev-runner.ts +++ b/scripts/dev-runner.ts @@ -344,6 +344,10 @@ export const createDevRunnerEnv = Effect.fn("dev-runner.createDevRunnerEnv")(fun delete output.T3_SERVICE_LAUNCHER_CONTEXT; delete output.T3_BOOT_SERVICE_UNIT; + // Each worktree has its own state, so a dev server would count as a new + // install of the developer's real accounts. Set it explicitly to opt in. + output.T3CODE_TELEMETRY_ENABLED = baseEnv.T3CODE_TELEMETRY_ENABLED ?? "false"; + if (!isDesktopMode) { output.T3CODE_PORT = String(serverPort); // HOST is Vite's own bind address, and the desktop branch below is the diff --git a/scripts/smoke-cli-archive.ts b/scripts/smoke-cli-archive.ts index 7c994153469b..de5a6bec4ae6 100644 --- a/scripts/smoke-cli-archive.ts +++ b/scripts/smoke-cli-archive.ts @@ -134,6 +134,9 @@ const smokeCliArchive = Effect.fn("smokeCliArchive")(function* (input: { TMPDIR: scratch, TEMP: scratch, T3CODE_HOME: home, + // The archive has a release channel built in, so its events would + // look like a real new install. + T3CODE_TELEMETRY_ENABLED: "false", }, extendEnv: false, }, From 5a969c17e76301e45e53e1fd9aad2f5b4599d865 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:05:40 -0700 Subject: [PATCH 07/28] fix(acp): idle agent errors fail their turns (#24615) Co-authored-by: Claude Opus 5.5 --- apps/server/scripts/acp-mock-agent.ts | 118 ++++++++++ .../Adapters/AcpAdapterV2.test.ts | 211 ++++++++++++++++++ .../RunExecutionService.test.ts | 11 + packages/effect-acp/src/client.test.ts | 31 +++ packages/effect-acp/src/client.ts | 1 + packages/effect-acp/src/compat.ts | 1 + packages/provider-acp/src/server/adapter.ts | 76 +++++-- 7 files changed, 427 insertions(+), 22 deletions(-) diff --git a/apps/server/scripts/acp-mock-agent.ts b/apps/server/scripts/acp-mock-agent.ts index 7a749b501bd3..440e3ffa6d0c 100644 --- a/apps/server/scripts/acp-mock-agent.ts +++ b/apps/server/scripts/acp-mock-agent.ts @@ -962,6 +962,124 @@ const program = Effect.gen(function* () { const requestedSessionId = String(request.sessionId ?? sessionId); beginAcpMockPrompt(cancelledSessions, requestedSessionId); promptCount += 1; + const idleError = process.env.T3_ACP_IDLE_ERROR; + if (idleError === "grok-background" && promptCount === 1) { + // The structured completion lands before the prompt settles, so it is buffered. + const taskId = "call-idle-error-background"; + writeJsonRpcNotification("session/update", { + sessionId: requestedSessionId, + update: { + sessionUpdate: "tool_call", + toolCallId: taskId, + title: "run_terminal_command", + kind: "execute", + status: "in_progress", + rawInput: { command: "sleep 1; echo done" }, + }, + }); + writeJsonRpcNotification("session/update", { + sessionId: requestedSessionId, + update: { + sessionUpdate: "tool_call_update", + toolCallId: taskId, + status: "completed", + rawOutput: { + type: "BackgroundTaskStarted", + task_id: taskId, + task_type: "bash", + status: "running", + command: "sleep 1; echo done", + }, + }, + }); + writeJsonRpcNotification("_x.ai/task_completed", { + sessionId: requestedSessionId, + update: { + sessionUpdate: "task_completed", + task_snapshot: { task_id: taskId, kind: "bash", exit_code: 0, output: "done\n" }, + }, + }); + writeJsonRpcNotification("session/update", { + sessionId: requestedSessionId, + update: { sessionUpdate: "state_update", state: "idle", stopReason: "error" }, + }); + return {}; + } + if (idleError !== undefined && promptCount === 1) { + const toolCallId = "tool-call-idle-error-1"; + writeJsonRpcNotification("session/update", { + sessionId: requestedSessionId, + update: { + sessionUpdate: "tool_call_update", + toolCallId, + title: "Terminal", + kind: "execute", + status: "in_progress", + rawInput: { command: ["long-running-tool"] }, + }, + }); + writeJsonRpcNotification("session/update", { + sessionId: requestedSessionId, + update: { + sessionUpdate: "tool_call_update", + toolCallId: "tool-call-idle-error-monitor", + title: "Monitor", + kind: "execute", + status: "in_progress", + rawInput: { command: ["background-monitor"] }, + }, + }); + writeJsonRpcNotification("session/update", { + sessionId: requestedSessionId, + update: { + sessionUpdate: "tool_call_update", + toolCallId: "tool-call-idle-error-subagent", + title: "Subagent", + kind: "other", + status: "in_progress", + rawInput: {}, + }, + }); + writeJsonRpcNotification("session/update", { + sessionId: "mock-child-session-idle-error", + update: { + sessionUpdate: "tool_call_update", + toolCallId: "tool-call-idle-error-child", + title: "Child tool", + kind: "execute", + status: "in_progress", + rawInput: { command: ["child-tool"] }, + }, + }); + writeJsonRpcNotification("session/update", { + sessionId: requestedSessionId, + update: { + sessionUpdate: "state_update", + state: "idle", + stopReason: "error", + ...(idleError === "details" + ? { error: { code: -32000, message: "Missing Authentication header" } } + : {}), + }, + }); + // The agent outlives the failed prompt, so its subagent finishes afterwards. + yield* Effect.sleep("50 millis").pipe( + Effect.andThen( + Effect.sync(() => + writeJsonRpcNotification("session/update", { + sessionId: requestedSessionId, + update: { + sessionUpdate: "tool_call_update", + toolCallId: "tool-call-idle-error-subagent", + status: "completed", + }, + }), + ), + ), + Effect.forkDetach, + ); + return {}; + } if ( process.env.T3_ACP_CRASH_PROMPT === "1" && request.prompt.some((part) => part.type === "text" && part.text === "crash now") diff --git a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts index 12d1a0846bbe..c636915c8935 100644 --- a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts @@ -399,6 +399,151 @@ function assertReinjectedInstructions( } describe("AcpAdapterV2", () => { + it.live.each(["details", "none"] as const)( + "fails the turn on an ACP v2 idle error with %s, settles its open tool, and accepts the next prompt", + (details) => + Effect.gen(function* () { + const path = yield* Path.Path; + const instanceId = ProviderInstanceId.make(`idle-error-${details}`); + const threadId = ThreadId.make(`thread-idle-error-${details}`); + const childSessionId = "mock-child-session-idle-error"; + const adapter = yield* makeAcpAdapterV2({ + instanceId, + selfInvocation: yield* resolveSelfInvocation(), + flavor: { + driver: ACP_TEST_DRIVER, + capabilities: AcpProviderCapabilitiesV2, + extractBackgroundTaskId: (toolCall) => + toolCall.toolCallId === "tool-call-idle-error-monitor" + ? "idle-error-monitor" + : undefined, + extractSubagentUpdate: (toolCall) => + toolCall.toolCallId === "tool-call-idle-error-subagent" + ? { + nativeTaskId: "task-idle-error", + prompt: "child work", + title: "child work", + model: null, + status: toolCall.status === "completed" ? "completed" : "running", + childSessionId, + result: null, + suppressNormalTool: true, + } + : undefined, + makeRuntime: makeMockRuntime({ + childProcessSpawner: yield* ChildProcessSpawner.ChildProcessSpawner, + mockAgentPath: yield* path.fromFileUrl( + new URL("../../../scripts/acp-mock-agent.ts", import.meta.url), + ), + environment: { T3_ACP_IDLE_ERROR: details }, + }), + }, + }); + const runtimePolicy = ProviderAdapter.ProviderAdapterV2RuntimePolicy.make({ + runtimeMode: "full-access", + interactionMode: "default", + cwd: process.cwd(), + }); + const modelSelection = { instanceId, model: "default" } as const; + const runtime = yield* adapter.openSession({ + threadId, + providerSessionId: ProviderSessionId.make(`session-idle-error-${details}`), + modelSelection, + runtimePolicy, + }); + const providerThread = yield* runtime.ensureThread({ + threadId, + modelSelection, + runtimePolicy, + }); + const runTurn = (ordinal: number) => + Effect.gen(function* () { + yield* runtime.startTurn( + makeTurnInput({ + threadId, + providerThread, + instanceId, + runtimePolicy, + now: yield* DateTime.now, + ordinal, + }), + ); + return yield* runtime.events.pipe( + Stream.takeUntil((event) => event.type === "turn.terminal"), + Stream.runCollect, + ); + }); + + const failedEvents = yield* runTurn(1); + const failed = failedEvents.at(-1); + assert.equal(failed?.type, "turn.terminal"); + if (failed?.type !== "turn.terminal" || failed.status !== "failed") { + return assert.fail("expected a failed terminal"); + } + assert.isTrue( + failed.childTurnsContinue, + "the run keeps ingesting work that outlives the failed prompt", + ); + const lateSubagent = yield* runtime.events.pipe( + Stream.filter( + (event) => event.type === "subagent.updated" && event.subagent.status === "completed", + ), + Stream.runHead, + Effect.timeoutOption("2 seconds"), + ); + assert.isTrue( + Option.isSome(lateSubagent) && Option.isSome(lateSubagent.value), + "a subagent finishing after the failed prompt still reports to the run", + ); + assert.deepEqual( + failed.failure, + details === "details" + ? { + class: "provider_error", + message: "Missing Authentication header", + code: "-32000", + retryable: null, + } + : { + class: "provider_error", + message: "Provider turn failed.", + code: null, + retryable: null, + }, + ); + const toolItems = (nativeId: string) => + failedEvents.flatMap((event) => + event.type === "turn_item.updated" && + event.turnItem.nativeItemRef?.nativeId === nativeId + ? [event.turnItem] + : [], + ); + const toolStatuses = toolItems("tool-call-idle-error-1").map((item) => item.status); + assert.include(toolStatuses, "running"); + assert.equal(toolStatuses.at(-1), "failed"); + assert.deepEqual( + toolItems("tool-call-idle-error-monitor").map((item) => item.status), + ["running"], + "a background monitor outlives the failed turn and keeps its running row", + ); + const childItems = toolItems("task-idle-error:tool:tool-call-idle-error-child"); + assert.deepEqual( + childItems.map((item) => item.status), + ["running"], + "a child-session tool keeps running in its own thread", + ); + assert.isTrue(childItems.every((item) => item.threadId !== threadId)); + assert.isEmpty( + toolItems("tool-call-idle-error-child"), + "the failed turn must not reproject the child tool as a root tool", + ); + + const nextEvents = yield* runTurn(2); + const next = nextEvents.at(-1); + assert.equal(next?.type === "turn.terminal" ? next.status : undefined, "completed"); + }).pipe(Effect.provide(layerTest), Effect.scoped), + ); + // Factory Droid 0.243.0 sends an optional text companion for every AskUser choice. const droidChoice = { type: "string", @@ -3082,6 +3227,72 @@ describe("AcpAdapterV2", () => { }).pipe(Effect.provide(layerTest), Effect.scoped), ); + it.live("settles a Grok background command that completed before an ACP v2 idle error", () => + Effect.gen(function* () { + const childProcessSpawner = yield* ChildProcessSpawner.ChildProcessSpawner; + const path = yield* Path.Path; + const mockAgentPath = yield* path.fromFileUrl( + new URL("../../../scripts/acp-mock-agent.ts", import.meta.url), + ); + const instanceId = ProviderInstanceId.make("grok-idle-error-background"); + const adapter = yield* makeGrokAdapterV2({ + instanceId, + settings: DEFAULT_GROK_SETTINGS, + environment: {}, + hostPlatform: yield* HostProcess.Platform, + selfInvocation: yield* resolveSelfInvocation(), + makeRuntime: (input) => + makeMockRuntime({ + childProcessSpawner, + mockAgentPath, + environment: { T3_ACP_IDLE_ERROR: "grok-background" }, + })(input).pipe(Effect.flatMap(makeXAiPromptCompletionRuntime)), + }); + const threadId = ThreadId.make("grok-idle-error-background"); + const modelSelection = { instanceId, model: "default" } as const; + const runtimePolicy = ProviderAdapter.ProviderAdapterV2RuntimePolicy.make({ + runtimeMode: "full-access", + interactionMode: "default", + cwd: process.cwd(), + }); + const runtime = yield* adapter.openSession({ + threadId, + providerSessionId: ProviderSessionId.make("grok-idle-error-background"), + modelSelection, + runtimePolicy, + }); + const providerThread = yield* runtime.ensureThread({ + threadId, + modelSelection, + runtimePolicy, + }); + yield* runtime.startTurn( + makeTurnInput({ + threadId, + providerThread, + instanceId, + runtimePolicy, + now: yield* DateTime.now, + }), + ); + const events = yield* runtime.events.pipe( + Stream.takeUntil((event) => event.type === "turn.terminal"), + Stream.runCollect, + ); + const terminal = events.at(-1); + assert.equal(terminal?.type === "turn.terminal" ? terminal.status : undefined, "failed"); + const command = events.findLast( + (event) => + event.type === "turn_item.updated" && + event.turnItem.nativeItemRef?.nativeId === "call-idle-error-background", + ); + assert.equal( + command?.type === "turn_item.updated" ? command.turnItem.status : undefined, + "completed", + ); + }).pipe(Effect.provide(layerTest), Effect.scoped), + ); + // Oracle: Grok incident frames. Command completion must release the turn even // when the CLI keeps the prompt RPC and process alive. Command polls stay visible. it.live( diff --git a/apps/server/src/orchestration-v2/RunExecutionService.test.ts b/apps/server/src/orchestration-v2/RunExecutionService.test.ts index 89d83941bd8f..03bbbf0506b5 100644 --- a/apps/server/src/orchestration-v2/RunExecutionService.test.ts +++ b/apps/server/src/orchestration-v2/RunExecutionService.test.ts @@ -1850,6 +1850,17 @@ it.effect.each([null, "run:nested-sdk"] as const)( }), ); +it.effect("keeps ingesting a failed root's background item when its work continues", () => + Effect.gen(function* () { + const observed = yield* runBackgroundItemScenario("bg-failed-continues", (ids) => [ + backgroundTurnItemEvent(ids, "command_execution", "running", 1), + { ...rootTerminalEvent(ids, "failed"), childTurnsContinue: true }, + backgroundTurnItemEvent(ids, "command_execution", "completed", 2), + ]); + assert.deepEqual(observed, ["turn_item:running", "root-finalized", "turn_item:completed"]); + }), +); + it.effect("does not pin ingestion on background items when the root turn is interrupted", () => Effect.gen(function* () { const observed = yield* runBackgroundItemScenario("bg-interrupted", (ids) => [ diff --git a/packages/effect-acp/src/client.test.ts b/packages/effect-acp/src/client.test.ts index db8630ab27cd..58823a5de544 100644 --- a/packages/effect-acp/src/client.test.ts +++ b/packages/effect-acp/src/client.test.ts @@ -1307,6 +1307,37 @@ it.layer(NodeServices.layer)("effect-acp client", (it) => { }), ); + it.effect("returns the ACP v2 idle error as the prompt result", () => + Effect.gen(function* () { + const { stdio, input, output } = yield* makeInMemoryStdio(); + const acp = yield* AcpClient.make(stdio); + const error = { code: -32000, message: "Missing Authentication header" }; + const prompt = yield* acp.agent + .prompt({ sessionId: "idle-error", prompt: [{ type: "text", text: "Hello" }] }) + .pipe(Effect.forkScoped); + const request = yield* decodePromptRequestLine(yield* Queue.take(output)); + yield* Queue.offer( + input, + concatBytes([ + yield* encodeJsonl(jsonRpcResponse(Schema.Unknown), { + jsonrpc: "2.0", + id: request.id, + result: { messageId: `user-${request.id}` }, + }), + yield* encodeJsonl(SessionUpdateNotification, { + jsonrpc: "2.0", + method: "session/update", + params: { + sessionId: "idle-error", + update: { sessionUpdate: "state_update", state: "idle", stopReason: "error", error }, + }, + }), + ]), + ); + assert.deepEqual(yield* Fiber.join(prompt), { stopReason: "error", error }); + }).pipe(Effect.scoped), + ); + it.effect("routes MCP-over-ACP connect, message, notification, and disconnect callbacks", () => Effect.gen(function* () { const handle = yield* makeHandle({ ACP_MOCK_MCP_OVER_ACP: "1" }); diff --git a/packages/effect-acp/src/client.ts b/packages/effect-acp/src/client.ts index 785d81536052..0527883acc7c 100644 --- a/packages/effect-acp/src/client.ts +++ b/packages/effect-acp/src/client.ts @@ -797,6 +797,7 @@ export const make = Effect.fn("effect-acp/AcpClient.make")(function* ( return Deferred.succeed(completion, { stopReason: idle.stopReason ?? "end_turn", ...(idle.usage === undefined ? {} : { usage: idle.usage }), + ...(idle.error === undefined ? {} : { error: idle.error }), ...(idle._meta === undefined ? {} : { _meta: idle._meta }), }).pipe(Effect.asVoid); }) diff --git a/packages/effect-acp/src/compat.ts b/packages/effect-acp/src/compat.ts index 586a0b3048c1..e2328b51b37a 100644 --- a/packages/effect-acp/src/compat.ts +++ b/packages/effect-acp/src/compat.ts @@ -242,6 +242,7 @@ export type PromptRequest = Omit & { export interface PromptResponse { readonly stopReason: StopReason; readonly usage?: V2.Usage | null; + readonly error?: V2.Error | null; readonly _meta?: Meta; } diff --git a/packages/provider-acp/src/server/adapter.ts b/packages/provider-acp/src/server/adapter.ts index 7d4438a64df8..54409011f587 100644 --- a/packages/provider-acp/src/server/adapter.ts +++ b/packages/provider-acp/src/server/adapter.ts @@ -1314,7 +1314,8 @@ function acpSubagentHasPendingBackgroundWork(subagent: ActiveAcpSubagent): boole type AcpCarryoverSubagents = { readonly sessionId: string; - readonly rootTerminalStatus: "completed" | "interrupted" | "failed" | "cancelled"; + /** The root's subscriber keeps ingesting, so late child terminals can still project. */ + readonly projectsLateTerminals: boolean; readonly subagents: ReadonlyArray; }; @@ -3373,6 +3374,16 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( return false; }; + const hasSurvivingBackgroundWork = (context: ActiveAcpTurn): boolean => + [...context.toolCallIdsByBackgroundTaskId.values()].some((toolCallId) => { + const tool = context.tools.get(toolCallId); + const status = tool === undefined ? undefined : toolStatus(tool.status); + return status === "pending" || status === "running"; + }) || + [...context.subagents.values()].some((subagent) => + acpSubagentStatusBlocksTurnSettlement(subagent.task.status), + ); + const rearmDeferredFinalize = /* Provider events include streaming deltas; avoid a span for each update. */ Effect.fnUntraced(function* (context: ActiveAcpTurn) { @@ -4443,6 +4454,20 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( return true; }); + const idleErrorFailure = (error: EffectAcpSchema.PromptResponse["error"]) => + flavor.promptFailure?.( + new EffectAcpErrors.AcpRequestError({ + code: error?.code ?? -32603, + errorMessage: error?.message ?? "Provider turn failed.", + ...(error?.data === undefined ? {} : { data: error.data }), + }), + ) ?? + makeProviderFailure({ + message: error?.message, + code: error == null ? null : String(error.code), + class: "provider_error", + }); + const settleIdleWork = Effect.fnUntraced(function* ( context: ActiveAcpTurn, ): Effect.fn.Return { @@ -4459,16 +4484,7 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( if (work.stopReason === "cancelled" && pendingStopCloseTurn === context) { context.interrupted = true; } - const failure = - work.stopReason === "error" - ? (flavor.promptFailure?.( - new EffectAcpErrors.AcpRequestError({ - code: work.error?.code ?? -32603, - errorMessage: work.error?.message ?? "Provider turn failed.", - ...(work.error?.data === undefined ? {} : { data: work.error.data }), - }), - ) ?? makeProviderFailure({ message: work.error?.message, class: "provider_error" })) - : undefined; + const failure = work.stopReason === "error" ? idleErrorFailure(work.error) : undefined; yield* finalizeTurn( context, failure !== undefined @@ -4684,7 +4700,7 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( const rootTerminalCanStillProject = carryover !== null && carryover.sessionId === (yield* Ref.get(activeSessionId)) && - carryover.rootTerminalStatus === "completed"; + carryover.projectsLateTerminals; const projectCarryover = rootTerminalCanStillProject; let carryoverTerminalized = false; if ( @@ -5677,7 +5693,7 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( project: carryover !== null && carryover.sessionId === (yield* Ref.get(activeSessionId)) && - carryover.rootTerminalStatus === "completed", + carryover.projectsLateTerminals, }, ); }); @@ -6932,11 +6948,12 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( const terminalizeOpenForegroundTools = Effect.fnUntraced(function* ( context: ActiveAcpTurn, + status: "completed" | "failed" = "completed", ) { for (const tool of context.tools.values()) { if (!acpCompletedTurnShouldTerminalizeTool(tool, { ...flavor, extractSubagentUpdate })) continue; - yield* emitTool(context, tool, "completed"); + yield* emitTool(context, tool, status); } }); @@ -6960,6 +6977,7 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( context: ActiveAcpTurn, status: "completed" | "interrupted" | "failed" | "cancelled", failure?: OrchestrationV2ProviderFailure, + options?: { readonly childTurnsContinue?: boolean }, ): Effect.fn.Return { if (context.finalized) return; const settledStatus = context.interrupted ? "interrupted" : status; @@ -7059,6 +7077,12 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( providerThread: updatedProviderThread, }); const rootSessionId = yield* Ref.get(activeSessionId); + const childTurnsContinue = + settledStatus === "failed" && + (options?.childTurnsContinue === true || + (followsAgentWorkState && + rootSessionId !== null && + hasWorkingDescendant(rootSessionId))); yield* emitProviderEvent( settledStatus === "failed" ? { @@ -7072,11 +7096,7 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( `terminal-failure:${context.providerTurnId}`, ), status: settledStatus, - ...(followsAgentWorkState && - rootSessionId !== null && - hasWorkingDescendant(rootSessionId) - ? { childTurnsContinue: true } - : {}), + ...(childTurnsContinue ? { childTurnsContinue: true } : {}), failure: failure ?? makeProviderFailure({ class: "provider_error" }), ...(context.providerRetry === undefined ? {} @@ -7105,7 +7125,7 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( if (sessionId !== null) { yield* Ref.set(carryoverSubagents, { sessionId, - rootTerminalStatus: settledStatus, + projectsLateTerminals: settledStatus === "completed" || childTurnsContinue, subagents: subagentsRequiringCarryover, }); } @@ -7590,8 +7610,11 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( promptGeneration, Effect.gen(function* () { if (context.finalized || followsAgentWorkState) return; - const status = - result.stopReason === "cancelled" + // ACP v2 reports a failed prompt as an idle `error`, not an RPC error. + const idleError = result.stopReason === "error" && !context.interrupted; + const status = idleError + ? "failed" + : result.stopReason === "cancelled" ? context.interrupted ? "interrupted" : "cancelled" @@ -7604,6 +7627,15 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( yield* finishRegisteredBackgroundTool({ taskId, ...completion }); } } + if (idleError) { + yield* terminalizeOpenForegroundTools(context, "failed"); + // Unlike an RPC failure, the agent survives an idle error, so its + // background tools and subagents keep reporting to this run. + yield* finalizeTurn(context, "failed", idleErrorFailure(result.error), { + childTurnsContinue: hasSurvivingBackgroundWork(context), + }); + return; + } if ( flavor.deferFinalizeForBackgroundWork === true && !context.interrupted && From 0840bb209c8a503ba74715167e4ae04c4c0e0c19 Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Sat, 24 Oct 2026 17:13:32 -0700 Subject: [PATCH 08/28] fix(provider-acp): Grok monitors show as monitors in background work (#24609) Co-authored-by: Claude Opus 5.5 --- .../orchestration-v2/RestartBackgroundNote.ts | 2 +- .../testkit/fixtures/grok_monitor/output.ts | 16 ++++++++++++++++ packages/contracts/src/orchestrationV2.ts | 4 ++++ packages/provider-acp/src/server/adapter.ts | 1 + .../src/orchestrationV2PendingBackgroundWork.ts | 3 ++- 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/apps/server/src/orchestration-v2/RestartBackgroundNote.ts b/apps/server/src/orchestration-v2/RestartBackgroundNote.ts index d957daad6ff7..62d534a81ad0 100644 --- a/apps/server/src/orchestration-v2/RestartBackgroundNote.ts +++ b/apps/server/src/orchestration-v2/RestartBackgroundNote.ts @@ -51,7 +51,7 @@ export function cancelledTurnItemWork( } case "command_execution": return { - kind: "shell", + kind: item.monitor === true ? "monitor" : "shell", label: compactLabel(item.input) ?? compactLabel(item.title) ?? "background command", id: item.id, }; diff --git a/apps/server/src/orchestration-v2/testkit/fixtures/grok_monitor/output.ts b/apps/server/src/orchestration-v2/testkit/fixtures/grok_monitor/output.ts index 285a8c40a12d..705639d6f414 100644 --- a/apps/server/src/orchestration-v2/testkit/fixtures/grok_monitor/output.ts +++ b/apps/server/src/orchestration-v2/testkit/fixtures/grok_monitor/output.ts @@ -1,7 +1,9 @@ import { assert } from "@effect/vitest"; import type { ProviderReplayTranscript } from "@t3tools/contracts"; +import { derivePendingBackgroundWork } from "@t3tools/shared/orchestrationV2PendingBackgroundWork"; import type { OrchestratorV2ScenarioResult } from "../../OrchestratorScenario.ts"; +import { cancelledTurnItemWork } from "../../../RestartBackgroundNote.ts"; import { assertBaseProjection, assertSemanticProjectionIntegrity, @@ -54,6 +56,20 @@ export function assertGrokMonitorOutput( assert.equal(monitorUpdates[tickUpdate]?.status, "running", `${tick} must show running`); } + // A persistent monitor keeps running after its run ends. Background work and + // the restart note must then name it a monitor, as they do for Claude's Monitor. + const runningMonitor = monitorUpdates.find((update) => update.status === "running"); + assert.isDefined(runningMonitor); + assert.deepEqual( + derivePendingBackgroundWork({ + latestRun: rootRun, + providerThreads: [], + turnItems: [runningMonitor], + }).map((task) => task.kind), + ["monitor"], + ); + assert.equal(cancelledTurnItemWork(runningMonitor)?.kind, "monitor"); + const monitorCompletedAt = result.domainEvents.findIndex( (event) => event.type === "turn-item.updated" && diff --git a/packages/contracts/src/orchestrationV2.ts b/packages/contracts/src/orchestrationV2.ts index b708f3187d1a..46403eb635d9 100644 --- a/packages/contracts/src/orchestrationV2.ts +++ b/packages/contracts/src/orchestrationV2.ts @@ -1477,6 +1477,8 @@ export const OrchestrationV2TurnItem = Schema.Union([ outputOmitted: Schema.optional(Schema.Boolean), outputIndicatesFailure: Schema.optional(Schema.Boolean), exitCode: Schema.optional(Schema.Int), + /** Set when the command is a monitor, so background work lists it as a monitor. */ + monitor: Schema.optional(Schema.Boolean), }), Schema.Struct({ ...OrchestrationV2TurnItemBaseFields, @@ -2244,6 +2246,8 @@ export const OrchestrationV2TurnItemJson = Schema.Union([ outputOmitted: Schema.optional(Schema.Boolean), outputIndicatesFailure: Schema.optional(Schema.Boolean), exitCode: Schema.optional(Schema.Int), + /** Set when the command is a monitor, so background work lists it as a monitor. */ + monitor: Schema.optional(Schema.Boolean), }), Schema.Struct({ ...OrchestrationV2TurnItemJsonBaseFields, diff --git a/packages/provider-acp/src/server/adapter.ts b/packages/provider-acp/src/server/adapter.ts index 54409011f587..9f71d55dea7e 100644 --- a/packages/provider-acp/src/server/adapter.ts +++ b/packages/provider-acp/src/server/adapter.ts @@ -3916,6 +3916,7 @@ export const makeAcpAdapterV2 = Effect.fn("makeAcpAdapterV2")(function* ( ? {} : { output: textFromUnknown(rawOutput) }), ...(exitCode === undefined ? {} : { exitCode }), + ...(inputVariant === "monitor" ? { monitor: true } : {}), }; } else { turnItem = { diff --git a/packages/shared/src/orchestrationV2PendingBackgroundWork.ts b/packages/shared/src/orchestrationV2PendingBackgroundWork.ts index f96662e57b24..3041d1937b17 100644 --- a/packages/shared/src/orchestrationV2PendingBackgroundWork.ts +++ b/packages/shared/src/orchestrationV2PendingBackgroundWork.ts @@ -132,6 +132,7 @@ type PendingBackgroundWorkTurnItem = { readonly nativeId: string | null; } | null; readonly input?: unknown; + readonly monitor?: boolean | undefined; readonly prompt?: string | undefined; readonly childThreadId?: ThreadId | null; }; @@ -190,7 +191,7 @@ function pendingTaskFromTurnItem( ...(item.childThreadId == null ? {} : { childThreadId: item.childThreadId }), }; case "command_execution": - return { ...named, kind: "command" }; + return { ...named, kind: item.monitor === true ? "monitor" : "command" }; default: return { ...named, kind: "background_task" }; } From 249b6ae469ee1d4723a36caebdcc13677b8e497d Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Sat, 24 Oct 2026 17:16:02 -0700 Subject: [PATCH 09/28] feat(server): devices on the same network reach background services over LAN (#24588) Co-authored-by: LukeCommits Co-authored-by: Claude Opus 5.5 --- apps/server/src/cli/config.test.ts | 55 +++++ apps/server/src/cli/config.ts | 26 ++- apps/server/src/cli/pair.ts | 9 +- apps/server/src/config.ts | 2 + .../src/environment/DirectEndpoints.test.ts | 17 ++ .../server/src/environment/DirectEndpoints.ts | 71 +++++-- apps/server/src/server.ts | 16 +- apps/server/src/serverRuntimeState.ts | 7 +- apps/server/src/startupAccess.test.ts | 89 ++++++-- apps/server/src/startupAccess.ts | 68 +++++- docs/internals/remote.md | 9 + docs/user/background-service.md | 10 + docs/user/remote-access.md | 3 +- .../client-runtime/src/connection/driver.ts | 28 ++- .../src/connection/supervisor.test.ts | 199 ++++++++++++++++++ 15 files changed, 546 insertions(+), 63 deletions(-) diff --git a/apps/server/src/cli/config.test.ts b/apps/server/src/cli/config.test.ts index 8de5df4b1892..076b50be67b0 100644 --- a/apps/server/src/cli/config.test.ts +++ b/apps/server/src/cli/config.test.ts @@ -23,6 +23,13 @@ import * as NetService from "@t3tools/shared/Net"; import { DEFAULT_SIGNAL_EXPORT } from "@t3tools/shared/observability"; import * as OtelEnvironment from "@t3tools/shared/otelEnvironment"; import * as NodeServices from "@effect/platform-node/NodeServices"; +import * as HostProcess from "@t3tools/shared/HostProcess"; +import packageJson from "../../package.json" with { type: "json" }; +import { ServiceLauncherHostProcess } from "../cloud/serviceLauncherClient.ts"; +import { + SERVICE_LAUNCHER_CONTEXT_ENV, + SERVICE_LAUNCHER_PROTOCOL, +} from "../cloud/serviceProtocol.ts"; import { deriveServerPaths } from "../config.ts"; import { resolveServerConfig } from "./config.ts"; @@ -856,4 +863,52 @@ it.layer(NodeServices.layer)("cli config resolution", (it) => { expect(resolved.otlpLogsUrl).toBeUndefined(); }), ); + + it.effect("listens on private networks only under the service launcher with no host set", () => + Effect.gen(function* () { + const { join } = yield* Path.Path; + const baseDir = join(NodeOS.tmpdir(), "t3-cli-config-service-host"); + const resolveHost = (input: { + readonly connected: boolean; + readonly env?: Record; + }) => + resolveServerConfig(minimalWebFlags(baseDir), Option.none()).pipe( + Effect.map(({ host, privateNetworkOnly }) => ({ host, privateNetworkOnly })), + Effect.provide( + Layer.mergeAll( + ConfigProvider.layer(ConfigProvider.fromEnv({ env: input.env ?? {} })), + NetService.layer, + ), + ), + Effect.provideService(HostProcess.Environment, { + [SERVICE_LAUNCHER_CONTEXT_ENV]: JSON.stringify({ + protocol: SERVICE_LAUNCHER_PROTOCOL, + childVersion: packageJson.version, + }), + }), + Effect.provideService(ServiceLauncherHostProcess, { + connected: input.connected, + send: () => false, + on: () => undefined, + off: () => undefined, + }), + ); + + expect(yield* resolveHost({ connected: true })).toEqual({ + host: "0.0.0.0", + privateNetworkOnly: true, + }); + // `service.env` reaches the server as its environment. + expect(yield* resolveHost({ connected: true, env: { T3CODE_HOST: "127.0.0.1" } })).toEqual({ + host: "127.0.0.1", + privateNetworkOnly: undefined, + }); + // Without the launcher's IPC channel the context was inherited, e.g. by + // `t3 serve` started from an agent inside the service. + expect(yield* resolveHost({ connected: false })).toEqual({ + host: undefined, + privateNetworkOnly: undefined, + }); + }), + ); }); diff --git a/apps/server/src/cli/config.ts b/apps/server/src/cli/config.ts index 0ac80602221b..00621e332deb 100644 --- a/apps/server/src/cli/config.ts +++ b/apps/server/src/cli/config.ts @@ -22,6 +22,7 @@ import { Argument, Flag } from "effect/cli"; import * as CliError from "effect/cli/CliError"; import { readBootstrapEnvelope } from "../bootstrap.ts"; +import { resolveServiceLauncherMode } from "../cloud/serviceLauncherClient.ts"; import * as ServerConfig from "../config.ts"; import { expandHomePath, resolveBaseDir } from "../os-jank.ts"; import { isProcessAlive, readPersistedServerRuntimeState } from "../serverRuntimeState.ts"; @@ -403,13 +404,23 @@ export const resolveServerConfig = Effect.fn("config.resolveServerConfig")(funct () => 443, ); const staticDir = devUrl ? undefined : yield* ServerConfig.resolveStaticDir(); - const host = Option.getOrElse( - resolveOptionPrecedence( - normalizedFlags.host, - Option.fromUndefinedOr(env.host), - Option.fromUndefinedOr(bootstrap?.host), - ), - () => (mode === "desktop" ? "127.0.0.1" : undefined), + const explicitHost = resolveOptionPrecedence( + normalizedFlags.host, + Option.fromUndefinedOr(env.host), + Option.fromUndefinedOr(bootstrap?.host), + ); + // A background service exists to be reached from other devices, so it + // listens on private networks unless `service.env` sets `T3CODE_HOST`. + // Clients then learn its LAN address and prefer it over T3 Connect. + const privateNetworkOnly = + Option.isNone(explicitHost) && + mode === "web" && + (yield* resolveServiceLauncherMode().pipe( + Effect.map((launcher) => launcher.managed), + Effect.orElseSucceed(() => false), + )); + const host = Option.getOrElse(explicitHost, () => + privateNetworkOnly ? "0.0.0.0" : mode === "desktop" ? "127.0.0.1" : undefined, ); const logLevel = Option.getOrElse(cliLogLevel, () => env.logLevel); @@ -475,6 +486,7 @@ export const resolveServerConfig = Effect.fn("config.resolveServerConfig")(funct ...derivedPaths, serverTracePath, host, + ...(privateNetworkOnly ? { privateNetworkOnly } : {}), staticDir, devUrl, ...(devAuthToken === undefined ? {} : { devAuthToken }), diff --git a/apps/server/src/cli/pair.ts b/apps/server/src/cli/pair.ts index ec30508d2b7c..ea4927059732 100644 --- a/apps/server/src/cli/pair.ts +++ b/apps/server/src/cli/pair.ts @@ -145,7 +145,10 @@ export class ServePortOccupiedError extends Schema.TaggedError - state.devUrl ?? resolveHeadlessConnectionString(state.host, state.port); + state.devUrl ?? + resolveHeadlessConnectionString(state.host, state.port, { + privateNetworkOnly: state.privateNetworkOnly, + }); export class DevServerNotProxiableError extends Schema.TaggedError()( "DevServerNotProxiableError", @@ -532,6 +535,10 @@ export const pairCommand = Command.make("pair", { notes.push( "This URL is only reachable from this machine. Re-run with --tailscale, or restart the server with a reachable --host.", ); + } else if (target.state.privateNetworkOnly) { + notes.push( + "This URL works only from this machine's local network. From elsewhere, re-run with --tailscale or use T3 Connect.", + ); } if (target.variant === "dev" && target.state.devUrl === undefined) { notes.push( diff --git a/apps/server/src/config.ts b/apps/server/src/config.ts index d0bc87cf0ff6..11628ae95c3c 100644 --- a/apps/server/src/config.ts +++ b/apps/server/src/config.ts @@ -72,6 +72,8 @@ export class ServerConfig extends Context.Service< readonly mode: RuntimeMode; readonly port: number; readonly host: string | undefined; + /** Set when the host was defaulted to a private-network listener for the service. */ + readonly privateNetworkOnly?: boolean | undefined; readonly cwd: string; readonly baseDir: string; readonly staticDir: string | undefined; diff --git a/apps/server/src/environment/DirectEndpoints.test.ts b/apps/server/src/environment/DirectEndpoints.test.ts index 793f2d1d59fc..08b16959e864 100644 --- a/apps/server/src/environment/DirectEndpoints.test.ts +++ b/apps/server/src/environment/DirectEndpoints.test.ts @@ -148,6 +148,23 @@ describe("resolveBoundEndpoints", () => { resolveBoundEndpoints({ host: "203.0.113.20", port: 3773, interfaces: INTERFACES }), ).toEqual([]); }); + + it("reports only the tailnet address on a cloud VM, whose private network no client shares", () => { + expect( + resolveBoundEndpoints({ + host: "0.0.0.0", + port: 3773, + interfaces: INTERFACES, + onCloudVm: true, + }), + ).toEqual([{ kind: "tailnet", httpBaseUrl: "http://100.101.102.103:3773/" }]); + }); + + it("never reports an IPv4-mapped host, which can name the client's own loopback", () => { + expect( + resolveBoundEndpoints({ host: "::ffff:127.0.0.1", port: 3773, interfaces: INTERFACES }), + ).toEqual([]); + }); }); const TAILSCALE_STATUS_JSON = JSON.stringify({ diff --git a/apps/server/src/environment/DirectEndpoints.ts b/apps/server/src/environment/DirectEndpoints.ts index 912378564899..a61c7812da99 100644 --- a/apps/server/src/environment/DirectEndpoints.ts +++ b/apps/server/src/environment/DirectEndpoints.ts @@ -14,10 +14,16 @@ import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as NodeNet from "node:net"; import * as NodeOS from "node:os"; -import { isPrivateNetworkHost, isTailnetHost } from "@t3tools/shared/hostClassification"; +import { isTailnetHost } from "@t3tools/shared/hostClassification"; import * as ServerConfig from "../config.ts"; -import { formatHostForUrl, isLoopbackHost, isWildcardHost } from "../startupAccess.ts"; +import { + formatHostForUrl, + isLoopbackHost, + isPrivateNetworkAddress, + isWildcardHost, + VIRTUAL_INTERFACE, +} from "../startupAccess.ts"; type NetworkInterfacesMap = ReturnType; @@ -40,19 +46,7 @@ export class DirectEndpoints extends Context.Service< * (`server.local`) can resolve to a different machine on each client's network. */ const isAdvertisableAddress = (address: string): boolean => - NodeNet.isIPv4(address) && - !address.startsWith("127.") && - !address.startsWith("169.254.") && - isPrivateNetworkHost(address); - -/** - * Container and VM networks (Docker, libvirt, VMware, VirtualBox, Hyper-V, and - * macOS's `bridge100`+) have private addresses only this machine reaches. A - * host bridge such as `br0` or Proxmox's `vmbr0` carries the LAN address, so - * it stays listed. - */ -const VIRTUAL_INTERFACE = - /^(docker|br-|veth|virbr|vmnet|vboxnet|vEthernet|podman|cni|flannel|cali|lxcbr|lxdbr|bridge1\d\d)/; + NodeNet.isIPv4(address) && !address.startsWith("127.") && isPrivateNetworkAddress(address); /** * Tailscale's own interface: `tailscale0` on Linux, "Tailscale" on Windows. @@ -71,6 +65,8 @@ export function resolveBoundEndpoints(input: { readonly host: string | undefined; readonly port: number; readonly interfaces: NetworkInterfacesMap; + /** A cloud VM's private network is its provider's, which no client shares. */ + readonly onCloudVm?: boolean; }): ReadonlyArray { if (isLoopbackHost(input.host)) return []; const tailscaleAddresses = new Set( @@ -87,17 +83,53 @@ export function resolveBoundEndpoints(input: { ) .map((entry) => entry.address) : [input.host!].filter(isAdvertisableAddress); - return [...new Set(addresses)].map((address) => ({ - kind: tailscaleAddresses.has(address) ? "tailnet" : "lan", - httpBaseUrl: `http://${formatHostForUrl(address)}:${input.port}/`, - })); + return [...new Set(addresses)] + .filter((address) => !input.onCloudVm || tailscaleAddresses.has(address)) + .map((address) => ({ + kind: tailscaleAddresses.has(address) ? "tailnet" : "lan", + httpBaseUrl: `http://${formatHostForUrl(address)}:${input.port}/`, + })); } +/** + * AWS, GCP, Azure, DigitalOcean, Hetzner, Linode, Vultr, and Oracle all serve + * instance metadata at this address. A plain TCP connect skips HTTP proxies, + * which would otherwise answer for a machine that is not in a cloud. + */ +const CLOUD_METADATA_ADDRESS = "169.254.169.254"; +const CLOUD_METADATA_TIMEOUT_MS = 300; + +const probeCloudMetadata = Effect.callback((resume) => { + const socket = NodeNet.connect({ + host: CLOUD_METADATA_ADDRESS, + port: 80, + timeout: CLOUD_METADATA_TIMEOUT_MS, + }); + let settled = false; + const settle = (found: boolean) => { + if (settled) return; + settled = true; + socket.destroy(); + resume(Effect.succeed(found)); + }; + socket.once("connect", () => settle(true)); + socket.once("timeout", () => settle(false)); + socket.once("error", () => settle(false)); + return Effect.sync(() => socket.destroy()); +}); + /** @public Service construction is part of the canonical Effect module API. */ export const make = Effect.gen(function* () { const config = yield* ServerConfig.ServerConfig; const spawner = yield* ChildProcessSpawner.ChildProcessSpawner; const httpClient = yield* HttpClient.HttpClient; + // Only the service default listens on every interface without being asked, + // so only it checks once whether it runs in a cloud. The check starts now so + // the first client does not wait for its timeout. + const onCloudVm = config.privateNetworkOnly + ? yield* Effect.cached(probeCloudMetadata) + : Effect.succeed(false); + yield* Effect.forkDetach(onCloudVm); const resolve = Effect.gen(function* () { const endpoints = [ @@ -105,6 +137,7 @@ export const make = Effect.gen(function* () { host: config.host, port: config.port, interfaces: NodeOS.networkInterfaces(), + onCloudVm: yield* onCloudVm, }), ]; // Tailscale Serve terminates HTTPS on the tailnet name and forwards to diff --git a/apps/server/src/server.ts b/apps/server/src/server.ts index a93d661dd8a4..c88a42bd12b5 100644 --- a/apps/server/src/server.ts +++ b/apps/server/src/server.ts @@ -186,7 +186,7 @@ import * as EventStoreV2 from "./orchestration-v2/EventStore.ts"; import * as ProjectionMaintenance from "./orchestration-v2/ProjectionMaintenance.ts"; import * as ProjectionStoreV2 from "./orchestration-v2/ProjectionStore.ts"; import { makePersistedServerRuntimeState } from "./serverRuntimeState.ts"; -import { loopbackUrlHostForAddress } from "./startupAccess.ts"; +import { acceptsPrivateNetworkConnection, loopbackUrlHostForAddress } from "./startupAccess.ts"; import * as OrchestrationHttp from "./orchestration-v2/http.ts"; import * as ProjectHttp from "./project/http.ts"; import * as NetService from "@t3tools/shared/Net"; @@ -300,7 +300,19 @@ const layerHttpServer = Layer.unwrap( Effect.gen(function* () { const config = yield* ServerConfig.ServerConfig; return NodeHttpServer.layer( - () => rejectRequestsUntilServing(guardHttpResponseWriteErrors(NodeHttp.createServer())), + () => { + const server = rejectRequestsUntilServing( + guardHttpResponseWriteErrors(NodeHttp.createServer()), + ); + if (config.privateNetworkOnly) { + server.on("connection", (socket) => { + if (!acceptsPrivateNetworkConnection(socket)) { + socket.destroy(); + } + }); + } + return server; + }, { host: config.host ?? "127.0.0.1", port: config.port, diff --git a/apps/server/src/serverRuntimeState.ts b/apps/server/src/serverRuntimeState.ts index abc16c16016b..0a9bcaca8053 100644 --- a/apps/server/src/serverRuntimeState.ts +++ b/apps/server/src/serverRuntimeState.ts @@ -14,6 +14,7 @@ export const PersistedServerRuntimeState = Schema.Struct({ pid: Schema.Int, ownerId: Schema.optional(Schema.String), host: Schema.optional(Schema.String), + privateNetworkOnly: Schema.optional(Schema.Boolean), port: Schema.Int, origin: Schema.String, // Dev is single-origin: browsers must pair through this URL, not `origin`. @@ -51,7 +52,10 @@ const runtimeOriginForConfig = ( }; export const makePersistedServerRuntimeState = (input: { - readonly config: Pick; + readonly config: Pick< + ServerConfig.ServerConfig["Service"], + "host" | "privateNetworkOnly" | "devUrl" + >; readonly port: number; readonly serviceManaged?: boolean; }): Effect.Effect => @@ -59,6 +63,7 @@ export const makePersistedServerRuntimeState = (input: { version: 1, pid: process.pid, ...(input.config.host ? { host: input.config.host } : {}), + ...(input.config.privateNetworkOnly ? { privateNetworkOnly: true } : {}), port: input.port, origin: runtimeOriginForConfig(input.config, input.port), ...(input.config.devUrl ? { devUrl: input.config.devUrl.toString() } : {}), diff --git a/apps/server/src/startupAccess.test.ts b/apps/server/src/startupAccess.test.ts index 1b411c93cf63..fd56b4a4c86f 100644 --- a/apps/server/src/startupAccess.test.ts +++ b/apps/server/src/startupAccess.test.ts @@ -1,30 +1,75 @@ -import { expect, it } from "@effect/vitest"; +import type * as NodeOS from "node:os"; -import { resolveHeadlessConnectionString } from "./startupAccess.ts"; +import { describe, expect, it } from "@effect/vitest"; + +import { + acceptsPrivateNetworkConnection, + resolveHeadlessConnectionString, +} from "./startupAccess.ts"; + +const ipv4 = (address: string, internal = false): NodeOS.NetworkInterfaceInfo => ({ + address, + netmask: "255.255.255.0", + family: "IPv4", + mac: "00:00:00:00:00:00", + internal, + cidr: `${address}/24`, +}); it("resolves wildcard hosts to a concrete external interface when one is available", () => { const connectionString = resolveHeadlessConnectionString("0.0.0.0", 3773, { - en0: [ - { - address: "192.168.1.42", - netmask: "255.255.255.0", - family: "IPv4", - mac: "00:00:00:00:00:00", - internal: false, - cidr: "192.168.1.42/24", - }, - ], - lo0: [ - { - address: "127.0.0.1", - netmask: "255.0.0.0", - family: "IPv4", - mac: "00:00:00:00:00:00", - internal: true, - cidr: "127.0.0.1/8", - }, - ], + interfaces: { en0: [ipv4("192.168.1.42")], lo0: [ipv4("127.0.0.1", true)] }, }); expect(connectionString).toBe("http://192.168.1.42:3773"); }); + +it("skips public and container addresses for a private-network listener", () => { + const interfaces = { + eth0: [ipv4("203.0.113.7")], + docker0: [ipv4("172.17.0.1")], + bridge200: [ipv4("192.168.64.1")], + eth1: [ipv4("10.0.0.5")], + }; + + expect(resolveHeadlessConnectionString("0.0.0.0", 3773, { interfaces })).toBe( + "http://203.0.113.7:3773", + ); + expect( + resolveHeadlessConnectionString("0.0.0.0", 3773, { interfaces, privateNetworkOnly: true }), + ).toBe("http://10.0.0.5:3773"); + expect( + resolveHeadlessConnectionString("0.0.0.0", 3773, { + interfaces: { eth0: [ipv4("203.0.113.7")] }, + privateNetworkOnly: true, + }), + ).toBe("http://localhost:3773"); +}); + +it("prefers a LAN address over a tailnet one for a private-network pairing URL", () => { + expect( + resolveHeadlessConnectionString("0.0.0.0", 3773, { + interfaces: { tailscale0: [ipv4("100.101.102.103")], en0: [ipv4("192.168.1.42")] }, + privateNetworkOnly: true, + }), + ).toBe("http://192.168.1.42:3773"); +}); + +describe("acceptsPrivateNetworkConnection", () => { + const accepts = (localAddress: string | undefined, remoteAddress: string | undefined) => + acceptsPrivateNetworkConnection({ localAddress, remoteAddress }); + + it("serves loopback, LAN, and tailnet clients", () => { + expect(accepts("127.0.0.1", "127.0.0.1")).toBe(true); + expect(accepts("::ffff:192.168.1.20", "::ffff:192.168.1.31")).toBe(true); + expect(accepts("100.101.102.103", "100.90.1.2")).toBe(true); + }); + + it("closes connections from or to a public address", () => { + // A cloud VM's public address is NATed to a private interface address. + expect(accepts("172.31.4.10", "203.0.113.7")).toBe(false); + expect(accepts("203.0.113.7", "192.168.1.31")).toBe(false); + expect(accepts("169.254.10.1", "169.254.10.2")).toBe(false); + expect(accepts(undefined, "192.168.1.31")).toBe(false); + }); +}); diff --git a/apps/server/src/startupAccess.ts b/apps/server/src/startupAccess.ts index 6f5db469b913..cd2815931e30 100644 --- a/apps/server/src/startupAccess.ts +++ b/apps/server/src/startupAccess.ts @@ -1,5 +1,7 @@ +import * as NodeNet from "node:net"; import * as NodeOS from "node:os"; +import { isPrivateNetworkHost, isSharedAddressSpaceHost } from "@t3tools/shared/hostClassification"; import { QrCode } from "@t3tools/shared/qrCode"; import * as Effect from "effect/Effect"; import { HttpServer } from "effect/http"; @@ -36,6 +38,38 @@ export const isWildcardHost = (host: string | undefined): boolean => export const formatHostForUrl = (host: string): string => host.includes(":") && !host.startsWith("[") ? `[${host}]` : host; +/** + * Container and VM networks (Docker, libvirt, VMware, VirtualBox, Hyper-V, and + * macOS's `bridge100`+) have private addresses only this machine reaches. A + * host bridge such as `br0` or Proxmox's `vmbr0` carries the LAN address, so + * it stays listed. + */ +export const VIRTUAL_INTERFACE = + /^(docker|br-|veth|virbr|vmnet|vboxnet|vEthernet|podman|cni|flannel|cali|lxcbr|lxdbr|bridge[1-9]\d\d)/; + +/** + * Loopback or private-range IPv4 (LAN, tailnet, CGNAT), not link-local, in + * plain or IPv4-mapped IPv6 form. + */ +export const isPrivateNetworkAddress = (address: string): boolean => { + const ipv4 = address.replace(/^::ffff:/i, ""); + return NodeNet.isIPv4(ipv4) && !ipv4.startsWith("169.254.") && isPrivateNetworkHost(ipv4); +}; + +/** + * A private-network listener binds every interface but serves only + * connections that stay on loopback, a LAN, or the tailnet. Both ends must be + * private: a cloud VM or a router port forward hands public clients to a + * private local address. + */ +export const acceptsPrivateNetworkConnection = (socket: { + readonly localAddress?: string | undefined; + readonly remoteAddress?: string | undefined; +}): boolean => + [socket.localAddress, socket.remoteAddress].every( + (address) => address !== undefined && isPrivateNetworkAddress(address), + ); + export const loopbackUrlHostForAddress = (address: NetAddress.InetAddress): string => address._tag === "InetAddressV6" && NetAddress.isLoopback(address.address) ? "[::1]" @@ -50,7 +84,8 @@ const isIpv6Family = (family: string | number): boolean => family === "IPv6" || const resolveHeadlessConnectionHost = ( host: string | undefined, - interfaces: NetworkInterfacesMap = NodeOS.networkInterfaces(), + interfaces: NetworkInterfacesMap, + privateNetworkOnly: boolean, ): string => { if (!host) { return "localhost"; @@ -60,13 +95,26 @@ const resolveHeadlessConnectionHost = ( return normalizeHost(host); } - const interfaceEntries = Object.values(interfaces).flatMap((entries) => entries ?? []); - const externalIpv4 = interfaceEntries.find( - (entry) => !entry.internal && isIpv4Family(entry.family), + const interfaceEntries = Object.entries(interfaces).flatMap(([name, entries]) => + privateNetworkOnly && VIRTUAL_INTERFACE.test(name) ? [] : (entries ?? []), ); + const externalIpv4Entries = interfaceEntries.filter( + (entry) => + !entry.internal && + isIpv4Family(entry.family) && + (!privateNetworkOnly || isPrivateNetworkAddress(entry.address)), + ); + // A tailnet or other CGNAT address reaches fewer devices than the LAN one. + const externalIpv4 = privateNetworkOnly + ? (externalIpv4Entries.find((entry) => !isSharedAddressSpaceHost(entry.address)) ?? + externalIpv4Entries[0]) + : externalIpv4Entries[0]; if (externalIpv4) { return externalIpv4.address; } + if (privateNetworkOnly) { + return "localhost"; + } const externalIpv6 = interfaceEntries.find( (entry) => !entry.internal && isIpv6Family(entry.family), @@ -77,9 +125,16 @@ const resolveHeadlessConnectionHost = ( export const resolveHeadlessConnectionString = ( host: string | undefined, port: number, - interfaces: NetworkInterfacesMap = NodeOS.networkInterfaces(), + options: { + readonly interfaces?: NetworkInterfacesMap; + readonly privateNetworkOnly?: boolean | undefined; + } = {}, ): string => { - const connectionHost = resolveHeadlessConnectionHost(host, interfaces); + const connectionHost = resolveHeadlessConnectionHost( + host, + options.interfaces ?? NodeOS.networkInterfaces(), + options.privateNetworkOnly === true, + ); return `http://${formatHostForUrl(connectionHost)}:${port}`; }; @@ -143,6 +198,7 @@ export const issueHeadlessServeAccessInfo = Effect.fn("issueHeadlessServeAccessI const connectionString = resolveHeadlessConnectionString( serverConfig.host, resolveListeningPort(httpServer.address, serverConfig.port), + { privateNetworkOnly: serverConfig.privateNetworkOnly }, ); const issued = yield* serverAuth.issueStartupPairingCredential(); diff --git a/docs/internals/remote.md b/docs/internals/remote.md index b581e1be1d55..3bd10a63882c 100644 --- a/docs/internals/remote.md +++ b/docs/internals/remote.md @@ -54,6 +54,15 @@ dropped, which is how a changed LAN address replaces the old one; routes the user saved are never touched. The reported addresses are hints like any advertised endpoint, so a learned route still has to answer as this environment before it is used. +A background service with no configured host is what makes this work for +headless machines. It listens on every IPv4 interface and closes each +connection unless both addresses of the direct peer are loopback, private, or +tailnet IPv4. That keeps a VPS's public address closed, including a cloud VM +whose public address is NATed to a private interface. It is not a firewall: +T3 Connect and Tailscale Serve reach the server over loopback by design, and a +proxy that rewrites the source address looks private. One listener per address would +miss a DHCP change, and the wildcard keeps the reported addresses current. + Pull request routing trust covers the whole route list. Adding or changing a route revokes it; reordering does not, because the same addresses remain trusted. diff --git a/docs/user/background-service.md b/docs/user/background-service.md index 9310b3fecb2c..e93cf7a0d966 100644 --- a/docs/user/background-service.md +++ b/docs/user/background-service.md @@ -40,6 +40,16 @@ downloaded versions after showing you the list and asking once. Your projects, threads, and settings under `~/.t3/userdata` are kept, along with `service.env` under T3 home. Pass `--yes` from a script. +## Local network access + +The service listens on your local network and Tailscale addresses, so the +desktop and mobile apps on the same network connect directly instead of through +T3 Connect. The hosted web app at app.t3.codes stays on T3 Connect, because +browsers block plain HTTP from an HTTPS page. The service does not answer on +public addresses, and every device still needs to pair or sign in. To keep the service reachable from this machine only, set +`T3CODE_HOST=127.0.0.1` in `service.env` (below). Any `T3CODE_HOST` value +replaces this default. + ## Configure the service environment Put custom environment variables in `service.env` under the service's T3 home diff --git a/docs/user/remote-access.md b/docs/user/remote-access.md index 493a580d14c5..fbda09d6af41 100644 --- a/docs/user/remote-access.md +++ b/docs/user/remote-access.md @@ -80,7 +80,8 @@ machine's current LAN and Tailscale addresses and adds them as routes, so pairing once through T3 Connect is enough to use the LAN at home. When the machine's LAN address changes, for example after it joins another Wi-Fi network, the learned route follows it. The machine must allow network access for its LAN -address to be learned. You can reorder a learned route, but not remove it; it +address to be learned. The [background service](./background-service.md#local-network-access) +allows it on private networks by default. You can reorder a learned route, but not remove it; it goes away with the route it was learned through, or when the machine stops reporting that address. diff --git a/packages/client-runtime/src/connection/driver.ts b/packages/client-runtime/src/connection/driver.ts index c4e6486da2f2..0dc3c8a1a58e 100644 --- a/packages/client-runtime/src/connection/driver.ts +++ b/packages/client-runtime/src/connection/driver.ts @@ -41,6 +41,10 @@ export interface EnvironmentConnectionLease { export type RouteCheck = "answered" | "silent" | "unchecked"; const ROUTE_CHECK_TIMEOUT_MS = 2_500; +// Preferred direct routes share one head start, so a relay connection does not +// wait the full probe timeout for a LAN the device has already left. A route +// that misses it connects over relay, then upgrades with a second reconnect. +const ROUTE_CHECK_HEAD_START_MS = 500; export class ConnectionDriver extends Context.Service< ConnectionDriver, @@ -72,6 +76,7 @@ export const connectOverRoutes = Effect.fn("ConnectionDriver.connectOverRoutes") routes.length === 1 ? [] : yield* Effect.forEach(routes, (route) => Effect.forkChild(checkRoute(route))); + const headStart = yield* Effect.forkChild(Effect.sleep(ROUTE_CHECK_HEAD_START_MS)); const attemptScope = yield* Scope.Scope; let transient: ConnectionAttemptError | undefined; let blocked: ConnectionAttemptError | undefined; @@ -89,11 +94,17 @@ export const connectOverRoutes = Effect.fn("ConnectionDriver.connectOverRoutes") } return result; }); - const silent: Array = []; + const silent: Array<{ readonly route: ConnectionRoute; readonly index: number }> = []; for (const [index, route] of routes.entries()) { - const check = checks.length === 0 ? "unchecked" : yield* Fiber.join(checks[index]!); + const check = + checks.length === 0 + ? "unchecked" + : yield* Effect.raceFirst( + Fiber.join(checks[index]!), + Fiber.join(headStart).pipe(Effect.as("silent")), + ); if (check === "silent") { - silent.push(route); + silent.push({ route, index }); continue; } const result = yield* attempt(route); @@ -101,7 +112,16 @@ export const connectOverRoutes = Effect.fn("ConnectionDriver.connectOverRoutes") // An incompatible server is the same server on every route. if (result.failure.reason === "unsupported") return yield* result.failure; } - for (const route of silent) { + // A slow route that answered after the head start goes before one that is + // still dead, which can hold an attempt open far longer than its probe. + const late = yield* Effect.forEach(silent, ({ index }) => Fiber.join(checks[index]!), { + concurrency: "unbounded", + }); + const retry = [ + ...silent.filter((_, position) => late[position] !== "silent"), + ...silent.filter((_, position) => late[position] === "silent"), + ]; + for (const { route } of retry) { const result = yield* attempt(route); if (result._tag === "Success") return result.success; if (result.failure.reason === "unsupported") return yield* result.failure; diff --git a/packages/client-runtime/src/connection/supervisor.test.ts b/packages/client-runtime/src/connection/supervisor.test.ts index be04d9308bbe..0306a86ef49a 100644 --- a/packages/client-runtime/src/connection/supervisor.test.ts +++ b/packages/client-runtime/src/connection/supervisor.test.ts @@ -1022,6 +1022,205 @@ describe("EnvironmentSupervisor", () => { }); describe("EnvironmentSupervisor routes", () => { + it.effect("connects over relay before a slow LAN reachability check times out", () => + Effect.gen(function* () { + const checkingLan = yield* Deferred.make(); + const harness = yield* makeHarness({ + checkRoute: (route) => + route.target._tag === "BearerConnectionTarget" + ? Deferred.succeed(checkingLan, undefined).pipe( + Effect.andThen(Effect.sleep("2500 millis")), + Effect.as("silent" as const), + ) + : Effect.succeed("unchecked"), + prepare: (_attempt, target) => Effect.succeed(preparedFor(target)), + }); + const supervisor = yield* EnvironmentSupervisor.make(LAN_THEN_RELAY_ENTRY, { + initiallyDesired: true, + }).pipe(Effect.provide(harness.dependencies)); + + yield* Deferred.await(checkingLan); + yield* TestClock.adjust("500 millis"); + yield* awaitState(supervisor.state, (state) => state.phase === "connected"); + expect(Option.getOrThrow(yield* SubscriptionRef.get(supervisor.prepared)).target._tag).toBe( + "RelayConnectionTarget", + ); + expect(yield* Ref.get(harness.prepareCount)).toBe(1); + }).pipe(Effect.provide(TestClock.layer())), + ); + + it.effect("shares one head start across several slow LAN routes", () => + Effect.gen(function* () { + const secondLanTarget = new BearerConnectionTarget({ + environmentId: TARGET.environmentId, + label: TARGET.label, + connectionId: "bearer:second-lan", + }); + const entry: ConnectionCatalogEntry = { + ...LAN_THEN_RELAY_ENTRY, + alternateRoutes: [ + { + target: secondLanTarget, + profile: Option.some( + new BearerConnectionProfile({ + connectionId: secondLanTarget.connectionId, + environmentId: TARGET.environmentId, + label: TARGET.label, + httpBaseUrl: "http://192.168.56.1:3773/", + wsBaseUrl: "ws://192.168.56.1:3773/", + }), + ), + }, + { target: RELAY_TARGET, profile: Option.none() }, + ], + }; + const checking = yield* Ref.make(0); + const checkingLans = yield* Deferred.make(); + const harness = yield* makeHarness({ + checkRoute: (route) => + route.target._tag === "BearerConnectionTarget" + ? Ref.updateAndGet(checking, (count) => count + 1).pipe( + Effect.flatMap((count) => + count === 2 ? Deferred.succeed(checkingLans, undefined) : Effect.void, + ), + Effect.andThen(Effect.sleep("2500 millis")), + Effect.as("silent" as const), + ) + : Effect.succeed("unchecked"), + prepare: (_attempt, target) => Effect.succeed(preparedFor(target)), + }); + const supervisor = yield* EnvironmentSupervisor.make(entry, { + initiallyDesired: true, + }).pipe(Effect.provide(harness.dependencies)); + + yield* Deferred.await(checkingLans); + yield* TestClock.adjust("500 millis"); + yield* awaitState(supervisor.state, (state) => state.phase === "connected"); + expect(Option.getOrThrow(yield* SubscriptionRef.get(supervisor.prepared)).target._tag).toBe( + "RelayConnectionTarget", + ); + }).pipe(Effect.provide(TestClock.layer())), + ); + + it.effect("still prefers a LAN route that responds within its head start", () => + Effect.gen(function* () { + const checkingLan = yield* Deferred.make(); + const harness = yield* makeHarness({ + checkRoute: (route) => + route.target._tag === "BearerConnectionTarget" + ? Deferred.succeed(checkingLan, undefined).pipe( + Effect.andThen(Effect.sleep("100 millis")), + Effect.as("answered" as const), + ) + : Effect.succeed("unchecked"), + prepare: (_attempt, target) => Effect.succeed(preparedFor(target)), + }); + const supervisor = yield* EnvironmentSupervisor.make(LAN_THEN_RELAY_ENTRY, { + initiallyDesired: true, + }).pipe(Effect.provide(harness.dependencies)); + + yield* Deferred.await(checkingLan); + yield* TestClock.adjust("100 millis"); + yield* awaitState(supervisor.state, (state) => state.phase === "connected"); + expect(Option.getOrThrow(yield* SubscriptionRef.get(supervisor.prepared)).target._tag).toBe( + "BearerConnectionTarget", + ); + expect(yield* Ref.get(harness.prepareCount)).toBe(1); + }).pipe(Effect.provide(TestClock.layer())), + ); + + it.effect("tries a slow tailnet route that answered before a dead LAN route", () => + Effect.gen(function* () { + const tailnetTarget = new BearerConnectionTarget({ + environmentId: TARGET.environmentId, + label: TARGET.label, + connectionId: "bearer:tailnet", + }); + // No relay: a Tailscale-only client away from the LAN. + const entry: ConnectionCatalogEntry = { + ...LAN_THEN_RELAY_ENTRY, + alternateRoutes: [ + { + target: tailnetTarget, + profile: Option.some( + new BearerConnectionProfile({ + connectionId: tailnetTarget.connectionId, + environmentId: TARGET.environmentId, + label: TARGET.label, + httpBaseUrl: "http://100.100.1.2:3773/", + wsBaseUrl: "ws://100.100.1.2:3773/", + network: "tailscale", + }), + ), + }, + ], + }; + const checking = yield* Ref.make(0); + const checkingBoth = yield* Deferred.make(); + const harness = yield* makeHarness({ + checkRoute: (route) => + Ref.updateAndGet(checking, (count) => count + 1).pipe( + Effect.flatMap((count) => + count === 2 ? Deferred.succeed(checkingBoth, undefined) : Effect.void, + ), + Effect.andThen( + connectionRouteId(route.target) === LAN_TARGET.connectionId + ? Effect.sleep("2500 millis").pipe(Effect.as("silent" as const)) + : Effect.sleep("700 millis").pipe(Effect.as("answered" as const)), + ), + ), + // The dead LAN address never answers the connection itself either. + prepare: (_attempt, target) => + target._tag === "BearerConnectionTarget" && + target.connectionId === LAN_TARGET.connectionId + ? Effect.never + : Effect.succeed(preparedFor(target)), + }); + const supervisor = yield* EnvironmentSupervisor.make(entry, { + initiallyDesired: true, + }).pipe(Effect.provide(harness.dependencies)); + + yield* Deferred.await(checkingBoth); + yield* TestClock.adjust("2500 millis"); + yield* awaitState(supervisor.state, (state) => state.phase === "connected"); + expect( + connectionRouteId( + Option.getOrThrow(yield* SubscriptionRef.get(supervisor.prepared)).target, + ), + ).toBe("bearer:tailnet"); + }).pipe(Effect.provide(TestClock.layer())), + ); + + it.effect("still tries a slow LAN route when relay fails", () => + Effect.gen(function* () { + const checkingLan = yield* Deferred.make(); + const attempted: string[] = []; + const harness = yield* makeHarness({ + checkRoute: (route) => + route.target._tag === "BearerConnectionTarget" + ? Deferred.succeed(checkingLan, undefined).pipe( + Effect.andThen(Effect.sleep("2500 millis")), + Effect.as("answered" as const), + ) + : Effect.succeed("unchecked"), + prepare: (_attempt, target) => { + attempted.push(target._tag); + return target._tag === "RelayConnectionTarget" + ? Effect.fail(blocked("Sign in to T3 Connect.")) + : Effect.succeed(preparedFor(target)); + }, + }); + const supervisor = yield* EnvironmentSupervisor.make(LAN_THEN_RELAY_ENTRY, { + initiallyDesired: true, + }).pipe(Effect.provide(harness.dependencies)); + + yield* Deferred.await(checkingLan); + yield* TestClock.adjust("2500 millis"); + yield* awaitState(supervisor.state, (state) => state.phase === "connected"); + expect(attempted).toEqual(["RelayConnectionTarget", "BearerConnectionTarget"]); + }).pipe(Effect.provide(TestClock.layer())), + ); + it.effect("skips a silent LAN route and connects over T3 Connect", () => Effect.gen(function* () { const harness = yield* makeHarness({ From 7769d709ce1983df0224c5f0e666b81ec61cac9f Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:17:23 -0700 Subject: [PATCH 10/28] fix(codex): bound pending requests after app-server stdout closes (#24600) Co-authored-by: Claude Opus 5.5 --- .../src/protocol.test.ts | 46 +++++++++++++++++++ .../effect-codex-app-server/src/protocol.ts | 20 ++++++-- 2 files changed, 61 insertions(+), 5 deletions(-) diff --git a/packages/effect-codex-app-server/src/protocol.test.ts b/packages/effect-codex-app-server/src/protocol.test.ts index 10e979c65010..f470d0b25bfa 100644 --- a/packages/effect-codex-app-server/src/protocol.test.ts +++ b/packages/effect-codex-app-server/src/protocol.test.ts @@ -5,6 +5,7 @@ import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Stdio from "effect/Stdio"; import * as Stream from "effect/Stream"; +import * as TestClock from "effect/testing/TestClock"; import * as NodeServices from "@effect/platform-node/NodeServices"; import { assert, it } from "@effect/vitest"; @@ -644,4 +645,49 @@ it.layer(NodeServices.layer)("effect-codex-app-server protocol", (it) => { assert.notInclude(error.message, secret); }), ); + + it.effect("fails pending requests when input ends while the process is still running", () => + Effect.gen(function* () { + const { stdio, input, output } = yield* makeInMemoryStdio(); + const transport = yield* CodexProtocol.makeCodexAppServerPatchedProtocol({ + stdio, + terminationError: Effect.never, + }); + const pending = yield* transport.request("thread/read", {}).pipe(Effect.forkScoped); + yield* Queue.take(output); + + yield* Queue.end(input); + yield* TestClock.adjust("249 millis"); + assert.isUndefined(pending.pollUnsafe()); + yield* TestClock.adjust("1 millis"); + + const failure = yield* Fiber.join(pending).pipe( + Effect.match({ + onFailure: (error) => error, + onSuccess: () => assert.fail("Expected the pending request to fail"), + }), + ); + assert.instanceOf(failure, CodexError.CodexAppServerInputStreamEndedError); + }), + ); + + it.effect("reports a process exit that follows input end", () => + Effect.gen(function* () { + const { stdio, input } = yield* makeInMemoryStdio(); + const exitError = new CodexError.CodexAppServerProcessExitedError({ code: 1, pid: 123 }); + const exited = yield* Deferred.make(); + const termination = yield* Deferred.make(); + yield* CodexProtocol.makeCodexAppServerPatchedProtocol({ + stdio, + terminationError: Deferred.await(exited), + onTermination: (error) => Deferred.succeed(termination, error).pipe(Effect.asVoid), + }); + + yield* Queue.end(input); + yield* TestClock.adjust("100 millis"); + yield* Deferred.succeed(exited, exitError); + + assert.strictEqual(yield* Deferred.await(termination), exitError); + }), + ); }); diff --git a/packages/effect-codex-app-server/src/protocol.ts b/packages/effect-codex-app-server/src/protocol.ts index bf67174033f4..b0ff5436e9e7 100644 --- a/packages/effect-codex-app-server/src/protocol.ts +++ b/packages/effect-codex-app-server/src/protocol.ts @@ -18,6 +18,7 @@ const isCodexAppServerError = Schema.is(CodexError.CodexAppServerError); const MAX_BUFFERED_RAW_MESSAGES = 32; // Bound JSONL lines before joining and parsing; the LF delimiter is excluded. const MAX_INCOMING_MESSAGE_BYTES = 128 * 1024 * 1024; +const EXIT_STATUS_GRACE = "250 millis"; export interface CodexAppServerProtocolLogEvent { readonly direction: "incoming" | "outgoing"; @@ -445,11 +446,20 @@ export const makeCodexAppServerPatchedProtocol = Effect.fn("makeCodexAppServerPa Effect.matchEffect({ onFailure: (error) => handleTermination(() => Effect.succeed(error)), onSuccess: () => - handleTermination( - () => - options.terminationError ?? - Effect.succeed(new CodexError.CodexAppServerInputStreamEndedError({})), - ), + handleTermination(() => { + const ended = new CodexError.CodexAppServerInputStreamEndedError({}); + // Node ends stdout before it reports the exit of a crashed process, so + // wait briefly for the exit status. stdout can also close while the + // process keeps running, so the wait must not hang pending requests. + return options.terminationError === undefined + ? Effect.succeed(ended) + : options.terminationError.pipe( + Effect.timeoutOrElse({ + duration: EXIT_STATUS_GRACE, + orElse: () => Effect.succeed(ended), + }), + ); + }), }), ), }), From ce8d644eda4418321eb74241ceb5a4c9e60c2b81 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:17:28 -0700 Subject: [PATCH 11/28] fix(cursor): discover built-in skills in the composer (#24595) Co-authored-by: Claude Opus 5.5 --- packages/provider-cursor/src/server/skills.test.ts | 13 ++++++++++++- packages/provider-cursor/src/server/skills.ts | 9 +++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/provider-cursor/src/server/skills.test.ts b/packages/provider-cursor/src/server/skills.test.ts index 2d174a716832..8d1359b1f577 100644 --- a/packages/provider-cursor/src/server/skills.test.ts +++ b/packages/provider-cursor/src/server/skills.test.ts @@ -19,7 +19,7 @@ const runNode = ( ) => effect.pipe(Effect.scoped, Effect.provide(NodeServices.layer), Effect.runPromise); describe("Cursor skills", () => { - it("discovers recursive project skills with project precedence", async () => + it("discovers project, user, then built-in skills by precedence", async () => await runNode( Effect.gen(function* () { const fileSystem = yield* FileSystem.FileSystem; @@ -66,6 +66,10 @@ describe("Cursor skills", () => { "oversized", "x".repeat(1_000_001), ); + const builtinRoot = path.join(userHome, ".cursor", "skills-cursor"); + yield* writeSkill(builtinRoot, "loop", "---\ndescription: builtin loop\n---\n"); + yield* writeSkill(builtinRoot, "review", "---\ndescription: builtin review\n---\n"); + yield* writeSkill(builtinRoot, "ide-only", "---\nmetadata:\n surfaces:\n - ide\n---\n"); yield* fileSystem.makeDirectory(path.join(userHome, ".codex"), { recursive: true }); yield* fileSystem.writeFileString( path.join(userHome, ".codex", "skills"), @@ -81,6 +85,13 @@ describe("Cursor skills", () => { enabled: true, userInvocable: false, }, + { + name: "loop", + description: "builtin loop", + path: path.join(builtinRoot, "loop", "SKILL.md"), + scope: "system", + enabled: true, + }, { name: "oversized", path: path.join(workspace, ".cursor", "skills", "oversized", "SKILL.md"), diff --git a/packages/provider-cursor/src/server/skills.ts b/packages/provider-cursor/src/server/skills.ts index 3b5aa6aa5145..0516cd3be7fe 100644 --- a/packages/provider-cursor/src/server/skills.ts +++ b/packages/provider-cursor/src/server/skills.ts @@ -125,7 +125,7 @@ function parseSkillFrontmatter(contents: string): CursorSkillFrontmatter | undef const discoverSkillsInRoot = Effect.fn("discoverCursorSkillsInRoot")(function* (input: { readonly directory: string; - readonly scope: "user" | "project"; + readonly scope: "user" | "project" | "system"; readonly budget: CursorSkillScanBudget; /** Real paths of the roots already walked in this scan. */ readonly scannedRoots: Set; @@ -232,7 +232,12 @@ const inspectCursorSkills = Effect.fn("inspectCursorSkills")(function* ( { directory: path.join(base, ".codex", "skills"), scope }, { directory: path.join(base, ".claude", "skills"), scope }, ]; - const roots = [...(cwd ? rootsBelow(cwd, "project") : []), ...rootsBelow(userHome, "user")]; + const roots = [ + ...(cwd ? rootsBelow(cwd, "project") : []), + ...rootsBelow(userHome, "user"), + // Cursor syncs its built-in skills here; same-named user and project skills win. + { directory: path.join(userHome, ".cursor", "skills-cursor"), scope: "system" as const }, + ]; const skillsByName = new Map(); const budget: CursorSkillScanBudget = { From 97548db62dd68a1859dd15fabb957e3ae746f65f Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:17:32 -0700 Subject: [PATCH 12/28] fix(server): retry provider event writes after brief SQLite locks (#24571) Co-authored-by: Claude Opus 5.5 --- .../ProviderEventIngestor.test.ts | 178 ++++++++++++++++-- .../orchestration-v2/ProviderEventIngestor.ts | 17 +- 2 files changed, 171 insertions(+), 24 deletions(-) diff --git a/apps/server/src/orchestration-v2/ProviderEventIngestor.test.ts b/apps/server/src/orchestration-v2/ProviderEventIngestor.test.ts index f3b54f33f337..4b4436b8bf7e 100644 --- a/apps/server/src/orchestration-v2/ProviderEventIngestor.test.ts +++ b/apps/server/src/orchestration-v2/ProviderEventIngestor.test.ts @@ -17,20 +17,23 @@ import { type OrchestrationV2TurnItem, ProviderDriverKind, ProviderInstanceId, - type ProviderThreadId, + ProviderThreadId, ProviderTurnId, RunAttemptId, RunId, RuntimeRequestId, TurnItemId, } from "@t3tools/contracts"; +import * as Cause from "effect/Cause"; import * as DateTime from "effect/DateTime"; import * as Deferred from "effect/Deferred"; import * as Fiber from "effect/Fiber"; import * as Effect from "effect/Effect"; +import * as Exit from "effect/Exit"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlError from "effect/sql/SqlError"; import * as Stream from "effect/Stream"; import { toolOutputImages } from "@t3tools/shared/toolOutput"; @@ -65,25 +68,63 @@ const layerGit = GitVcsDriver.layer.pipe( Layer.provideMerge(NodeServices.layer), ); -const layerTest = Layer.mergeAll( - layerTestDatabase, - layerTestStores, - layerTestEventSink, - IdAllocator.layer, - ThreadCommandExecutor.layer, - layerGit, - ProviderEventIngestor.layer.pipe( - Layer.provide( - Layer.mergeAll( - layerTestStores, - layerTestEventSink, - IdAllocator.layer, - ThreadCommandExecutor.layer, - layerGit, +const makeLayerTest = (ingestorEventSink: Layer.Layer) => + Layer.mergeAll( + layerTestDatabase, + layerTestStores, + layerTestEventSink, + IdAllocator.layer, + ThreadCommandExecutor.layer, + layerGit, + ProviderEventIngestor.layer.pipe( + Layer.provide( + Layer.mergeAll( + layerTestStores, + ingestorEventSink, + IdAllocator.layer, + ThreadCommandExecutor.layer, + layerGit, + ), ), ), - ), -); + ); +const layerTest = makeLayerTest(layerTestEventSink); + +// EventSink reports a lock that outlasted busy_timeout at BEGIN IMMEDIATE this way. +const lockTimeout = new EventSink.EventSinkWriteError({ + eventCount: 1, + cause: new SqlError.SqlError({ reason: new SqlError.LockTimeoutError({ cause: null }) }), +}); +const constraintFailure = new EventSink.EventSinkWriteError({ + eventCount: 1, + cause: new SqlError.SqlError({ reason: new SqlError.ConstraintError({ cause: null }) }), +}); + +/** The ingestor's next sink writes of `events` fail with `errors`, in order; the rest go through. */ +const layerFailingWrites = ( + errors: ReadonlyArray, + matches: (events: ReadonlyArray) => boolean = () => true, +) => + makeLayerTest( + Layer.effect( + EventSink.EventSinkV2, + Effect.gen(function* () { + const eventSink = yield* EventSink.EventSinkV2; + const pending = [...errors]; + const failNext = ( + events: ReadonlyArray, + write: Effect.Effect, + ) => Effect.suspend(() => (matches(events) ? (pending.shift() ?? write) : write)); + return EventSink.EventSinkV2.of({ + ...eventSink, + write: (input) => failNext(input.events, eventSink.write(input)), + writeIfRunCurrent: (input) => failNext(input.events, eventSink.writeIfRunCurrent(input)), + writeIfProviderThreadOwner: (input) => + failNext(input.events, eventSink.writeIfProviderThreadOwner(input)), + }); + }), + ).pipe(Layer.provide(layerTestEventSink)), + ); const makeSharedWorktree = Effect.gen(function* () { const fs = yield* FileSystem.FileSystem; @@ -2005,7 +2046,7 @@ layer("ProviderEventIngestorV2", (it) => { }), ); - it.effect("moves a native subagent's thread to the model its provider reports later", () => + it.effect("moves a native subagent's thread to its later model through a database lock", () => Effect.gen(function* () { const now = yield* DateTime.now; const eventSink = yield* EventSink.EventSinkV2; @@ -2124,6 +2165,103 @@ layer("ProviderEventIngestorV2", (it) => { (yield* projectionStore.getThread(childThreadId)).modelSelection, reportedSelection, ); - }), + }).pipe( + // Fresh: the shared test layer has already built the ingestor this replaces. + Effect.provide( + Layer.fresh( + layerFailingWrites([lockTimeout, lockTimeout], (events) => + events.some((event) => event.type === "thread.model-selection-updated"), + ), + ), + ), + ), ); }); + +const ingestCompletedProviderTurn = ( + guard: Pick< + Parameters[0], + "writeIfRunCurrent" | "writeIfProviderThreadOwner" + >, +) => + Effect.gen(function* () { + const now = yield* DateTime.now; + const eventSink = yield* EventSink.EventSinkV2; + const projectionStore = yield* ProjectionStore.ProjectionStoreV2; + const ingestor = yield* ProviderEventIngestor.ProviderEventIngestorV2; + const idAllocator = yield* IdAllocator.IdAllocatorV2; + const threadEvent = yield* threadCreatedEvent(now); + yield* eventSink.write({ events: [threadEvent] }); + const providerTurnId = ProviderTurnId.make("provider-turn:locked"); + const exit = yield* ingestor + .ingestNormalized({ + providerSessionId: yield* idAllocator.allocate.providerSession({ + providerInstanceId: modelSelection.instanceId, + threadId: threadEvent.threadId, + }), + providerInstanceId: modelSelection.instanceId, + threadId: threadEvent.threadId, + event: { + type: "provider_turn.updated", + driver: CODEX_DRIVER, + providerTurn: { + id: providerTurnId, + providerThreadId: ProviderThreadId.make("provider-thread:locked"), + nodeId: NodeId.make("node:locked-turn"), + runAttemptId: null, + nativeTurnRef: null, + ordinal: 1, + status: "completed", + startedAt: now, + completedAt: now, + }, + }, + ...guard, + }) + .pipe(Effect.exit); + const projection = yield* projectionStore.getThreadProjection(threadEvent.threadId); + return { exit, providerTurnId, persisted: projection.providerTurns.map((turn) => turn.id) }; + }); + +// Neither guard matches a stored run, so a guarded write correctly commits nothing. +const runId = RunId.make("run:locked"); +const activeAttemptId = RunAttemptId.make("attempt:locked"); +it.effect.each([ + { route: "write", guard: {} }, + { + route: "writeIfRunCurrent", + guard: { writeIfRunCurrent: { runId, activeAttemptId, expectedStatus: "running" } }, + }, + { + route: "writeIfProviderThreadOwner", + guard: { + writeIfProviderThreadOwner: { + providerThreadId: ProviderThreadId.make("provider-thread:locked"), + runId, + activeAttemptId, + expectedLastRunOrdinal: 1, + }, + }, + }, +] as const)("a provider event $route outlasts a brief database lock", ({ route, guard }) => + Effect.gen(function* () { + const { exit, providerTurnId, persisted } = yield* ingestCompletedProviderTurn(guard); + assert.isTrue(Exit.isSuccess(exit)); + assert.deepEqual(persisted, route === "write" ? [providerTurnId] : []); + }).pipe(Effect.provide(layerFailingWrites([lockTimeout, lockTimeout]))), +); + +// The write after the queued errors would succeed, so failing proves the retries stopped. +it.effect.each([ + { failure: "stays locked", errors: [lockTimeout, lockTimeout, lockTimeout] }, + { failure: "fails for another reason", errors: [constraintFailure] }, +])("fails a provider event write that $failure", ({ errors }) => + Effect.gen(function* () { + const { exit, persisted } = yield* ingestCompletedProviderTurn({}); + assert.instanceOf( + Exit.isFailure(exit) ? Cause.squash(exit.cause) : undefined, + ProviderEventIngestor.ProviderEventPublishError, + ); + assert.isEmpty(persisted); + }).pipe(Effect.provide(layerFailingWrites(errors))), +); diff --git a/apps/server/src/orchestration-v2/ProviderEventIngestor.ts b/apps/server/src/orchestration-v2/ProviderEventIngestor.ts index 47f34d35da96..f4064dab70af 100644 --- a/apps/server/src/orchestration-v2/ProviderEventIngestor.ts +++ b/apps/server/src/orchestration-v2/ProviderEventIngestor.ts @@ -27,6 +27,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; +import * as SqlError from "effect/sql/SqlError"; import { AgentScope } from "@t3tools/shared/AgentScope"; import { isTemporaryWorktreeBranch } from "@t3tools/shared/git"; @@ -69,6 +70,14 @@ export class ProviderEventPublishError extends Schema.TaggedError + SqlError.isSqlError(error.cause) && error.cause.reason._tag === "LockTimeoutError"; +const retryLockTimeout = (write: Effect.Effect) => + Effect.retry(write, { while: isLockTimeout, times: 2 }); + export const ProviderEventIngestorV2Error = Schema.Union([ ProviderEventNormalizeError, ProviderEventPublishError, @@ -450,7 +459,7 @@ export const layer: Layer.Layer< }, occurredAt: now, }); - return yield* eventSink.write({ events: [event] }); + return yield* eventSink.write({ events: [event] }).pipe(retryLockTimeout); }), ); }, @@ -767,7 +776,7 @@ export const layer: Layer.Layer< ...input.writeIfProviderThreadOwner, events, }) - .pipe(Effect.mapError(mapWriteError)); + .pipe(retryLockTimeout, Effect.mapError(mapWriteError)); return ownerResult.storedEvents; } if (input.writeIfRunCurrent === undefined) { @@ -777,7 +786,7 @@ export const layer: Layer.Layer< ...(input.commandId === undefined ? {} : { commandId: input.commandId }), events, }) - .pipe(Effect.mapError(mapWriteError)); + .pipe(retryLockTimeout, Effect.mapError(mapWriteError)); } const result = yield* eventSink .writeIfRunCurrent({ @@ -787,7 +796,7 @@ export const layer: Layer.Layer< ...input.writeIfRunCurrent, events, }) - .pipe(Effect.mapError(mapWriteError)); + .pipe(retryLockTimeout, Effect.mapError(mapWriteError)); return result.storedEvents; }, (effect, input) => From 3eb836664eb1a5d0102055fe1e4a7fc5c1d8a9c7 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:20:30 -0700 Subject: [PATCH 13/28] fix(server): settle inactive threads with persisted open PR links (#24617) Co-authored-by: Claude Opus 5.5 --- .../ThreadSettlementService.test.ts | 98 +++++++++++++++++++ .../ThreadSettlementService.ts | 14 ++- 2 files changed, 109 insertions(+), 3 deletions(-) diff --git a/apps/server/src/orchestration-v2/ThreadSettlementService.test.ts b/apps/server/src/orchestration-v2/ThreadSettlementService.test.ts index 10caf988e475..f17aaad4b867 100644 --- a/apps/server/src/orchestration-v2/ThreadSettlementService.test.ts +++ b/apps/server/src/orchestration-v2/ThreadSettlementService.test.ts @@ -100,6 +100,33 @@ function shell(overrides: Partial = {}): SettlementShell { }; } +function persistedLink( + state: "open" | null, + linkedAt: DateTime.Utc, +): NonNullable[number] { + return { + host: "example.test", + repository: "owner/repository", + number: 42, + url: "https://example.test/owner/repository/pull/42", + source: "manual", + linkedAt: DateTime.formatIso(linkedAt), + snapshot: + state === null + ? null + : { + state, + title: "Pull request", + headBranch: "feature", + baseBranch: "main", + isDraft: false, + updatedAt: DateTime.formatIso(linkedAt), + syncedAt: DateTime.formatIso(linkedAt), + }, + stack: null, + }; +} + describe("isAutoSettlementCandidate", () => { it("settles a thread whose only background work is a command left running", () => { expect( @@ -186,6 +213,51 @@ describe("resolveAutoSettlementAt", () => { ).toEqual(at(-4 * DAY_MS)); }); + it("settles an idle thread with an open persisted link only while retention is off", () => { + const input = { + thread: shell({ + latestUserMessageAt: at(-4 * DAY_MS), + pullRequests: [persistedLink("open", at(-5 * DAY_MS))], + }), + pullRequest: null, + nowMs: NOW_MS, + autoSettleAfterDays: 3, + autoSettleOnMerge: true, + autoSettleKeepPullRequests: false, + }; + expect(ThreadSettlementService.resolveAutoSettlementAt(input)).toEqual(at(-4 * DAY_MS)); + expect( + ThreadSettlementService.resolveAutoSettlementAt({ + ...input, + autoSettleKeepPullRequests: true, + }), + ).toBeNull(); + // The open link outranks a merged lookup, so only inactivity can settle it. + expect( + ThreadSettlementService.resolveAutoSettlementAt({ + ...input, + pullRequest: { state: "merged", mergedAt: DateTime.formatIso(at(-1)) }, + autoSettleAfterDays: null, + }), + ).toBeNull(); + }); + + it("keeps an idle thread whose persisted link was never synced", () => { + expect( + ThreadSettlementService.resolveAutoSettlementAt({ + thread: shell({ + latestUserMessageAt: at(-4 * DAY_MS), + pullRequests: [persistedLink(null, at(-5 * DAY_MS))], + }), + pullRequest: null, + nowMs: NOW_MS, + autoSettleAfterDays: 3, + autoSettleOnMerge: true, + autoSettleKeepPullRequests: false, + }), + ).toBeNull(); + }); + it("uses the latest activity time when the inactivity window elapses", () => { const idle = shell({ latestUserMessageAt: at(-4 * DAY_MS), @@ -697,6 +769,32 @@ describe("ThreadSettlementServiceV2 worker", () => { ), ); + it.effect("settles an idle thread with an open persisted link on the inactivity sweep", () => + Effect.scoped( + Effect.gen(function* () { + yield* TestClock.setTime(Date.parse(NOW)); + const thread = makeThread("open-link", { + pullRequests: [persistedLink("open", DateTime.makeUnsafe("2026-08-20T00:00:00.000Z"))], + }); + const fixture = yield* makeHarness({ + snapshot: makeSnapshot([thread]), + settings: { + ...DEFAULT_SERVER_SETTINGS, + sidebarAutoSettleAfterDays: 3, + sidebarAutoSettleKeepPullRequests: false, + }, + }); + yield* Effect.gen(function* () { + const service = yield* ThreadSettlementService.ThreadSettlementServiceV2; + yield* startHarness(service, fixture.activation, fixture.snapshotReads); + expect((yield* Ref.get(fixture.commands)).map((command) => command.threadId)).toEqual([ + thread.id, + ]); + }).pipe(Effect.provide(fixture.layer)); + }), + ), + ); + it.effect("settles only the project opted in while environment settlement is disabled", () => Effect.scoped( Effect.gen(function* () { diff --git a/apps/server/src/orchestration-v2/ThreadSettlementService.ts b/apps/server/src/orchestration-v2/ThreadSettlementService.ts index 2efe9e3e896d..d218205fbc5d 100644 --- a/apps/server/src/orchestration-v2/ThreadSettlementService.ts +++ b/apps/server/src/orchestration-v2/ThreadSettlementService.ts @@ -192,8 +192,13 @@ export function resolveAutoSettlementAt(input: { const { thread } = input; let pullRequest = input.pullRequest; const links = settlementPullRequestLinks(thread.pullRequests ?? []); - if (links.some((link) => link.snapshot === null || link.snapshot.state === "open")) return null; - if (links.length > 0) { + if (links.some((link) => link.snapshot === null)) return null; + // An open link means the pull request has not finished, so only inactivity + // can settle the thread, never a merged or closed lookup. + const hasOpenLink = links.some((link) => link.snapshot?.state === "open"); + if (hasOpenLink) { + pullRequest = null; + } else if (links.length > 0) { const latest = links.reduce((current, candidate) => linkTerminalAtMs(candidate) > linkTerminalAtMs(current) ? candidate : current, ); @@ -218,7 +223,10 @@ export function resolveAutoSettlementAt(input: { return DateTime.makeUnsafe(activityAtMs); } const hasPullRequest = - pullRequest !== null || thread.linkedPullRequest != null || thread.branchPullRequest != null; + hasOpenLink || + pullRequest !== null || + thread.linkedPullRequest != null || + thread.branchPullRequest != null; if (input.autoSettleKeepPullRequests === true && hasPullRequest) return null; if (input.autoSettleAfterDays === null) return null; const snoozedUntilMs = toMillis(thread.snoozedUntil); From 5848bc263bf4fe905e6e3f2eccabfc700d14d58e Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:29:46 -0700 Subject: [PATCH 14/28] feat(mobile): Settings is a workspace tab, and tabs never open on an empty detail (#24524) Co-authored-by: Claude Opus 5.5 --- apps/mobile/src/App.tsx | 20 +- apps/mobile/src/Stack.tsx | 598 +++++++++--------- .../cloud/connectOnboardingNavigation.ts | 4 +- .../connection/ConnectionsNewRouteScreen.tsx | 8 +- .../src/features/home/HomeRouteScreen.tsx | 43 +- .../src/features/keyboard/CommandPalette.tsx | 40 +- .../HardwareKeyboardCommandProvider.tsx | 8 + .../layout/AdaptiveWorkspaceLayout.tsx | 81 ++- .../features/layout/WorkspaceEmptyDetail.tsx | 26 +- .../layout/adaptive-workspace-context.ts | 7 + .../createWorkspaceStackNavigator.ios.tsx | 72 ++- .../layout/workspace-overlay-routes.ts | 61 ++ .../PullRequestToolbar.android.tsx | 8 +- .../settings/SettingsAuthRouteScreen.tsx | 8 +- .../SettingsEnvironmentDetailRouteScreen.tsx | 8 +- .../SettingsEnvironmentsRouteScreen.tsx | 11 +- .../SettingsNotificationsRouteScreen.tsx | 2 +- .../SettingsOpenSourceLicensesRouteScreen.tsx | 8 +- .../SettingsProjectOverviewRouteScreen.tsx | 6 +- .../features/settings/SettingsRouteScreen.tsx | 52 +- .../SettingsServerControlsRouteScreen.tsx | 8 +- .../settings/components/SettingsRow.tsx | 70 +- .../settings/components/SettingsScreen.tsx | 5 +- .../settings/components/SettingsSection.tsx | 39 +- .../components/settings-page-targets.ts | 30 + .../components/settings-sheet-targets.ts | 26 - .../settings/scheduled-task-editor.tsx | 34 +- .../settings/settings-environment-filter.tsx | 122 ++-- .../features/settings/settings-navigation.ts | 119 ++++ .../showcase/ShowcaseCaptureCoordinator.tsx | 8 +- .../src/features/threads/ThreadFeed.tsx | 8 +- .../features/threads/ThreadRouteScreen.tsx | 6 +- .../src/features/usage/UsageLimitsPooled.tsx | 18 +- .../workspace/AndroidWorkspaceSettings.tsx | 20 - .../workspace/WorkspaceNativeTabs.ios.tsx | 72 +-- .../features/workspace/WorkspaceNoTabs.tsx | 8 +- .../workspace/WorkspaceRootScreen.tsx | 42 +- .../workspace/WorkspaceSectionToolbar.tsx | 7 +- .../workspace/WorkspaceSidebarTabs.ios.tsx | 6 +- .../workspace/android-workspace-tabs.ts | 36 +- .../workspace/useSelectWorkspaceTab.ts | 22 +- .../workspace/useSystemWorkspaceTabBar.ts | 3 +- .../workspace/workspace-selection-store.ts | 142 +++++ .../workspace-tab-navigation.test.ts | 162 +++++ .../workspace/workspace-tab-navigation.ts | 202 ++++++ .../workspace/workspace-tabs-state.test.ts | 11 +- .../workspace/workspace-tabs-state.ts | 5 +- .../src/lib/adaptive-navigation.test.ts | 8 +- .../lib/android-workspace-navigation.test.ts | 56 +- .../src/lib/android-workspace-navigation.ts | 39 +- apps/mobile/src/lib/layout.ts | 7 +- apps/mobile/src/lib/root-stack-reset.ts | 44 ++ .../src/native/NativeHeaderToolbar.test.tsx | 6 +- .../mobile/src/native/NativeHeaderToolbar.tsx | 21 +- .../src/native/NativeWorkspaceColumns.ios.tsx | 17 +- .../src/native/NativeWorkspaceColumns.tsx | 5 + apps/mobile/src/native/StackHeader.tsx | 35 +- .../src/native/createV5StackNavigator.ios.tsx | 152 +---- .../src/native/createV5StackNavigator.tsx | 5 +- .../src/native/native-layout-metrics.tsx | 29 +- .../src/native/v5-workspace-context.tsx | 21 + .../native/workspace-stack-projection.test.ts | 28 +- .../src/native/workspace-stack-projection.ts | 10 +- .../src/persistence/mobile-preferences.ts | 33 + .../state/use-remote-environment-registry.ts | 2 +- 65 files changed, 1805 insertions(+), 1015 deletions(-) create mode 100644 apps/mobile/src/features/layout/workspace-overlay-routes.ts create mode 100644 apps/mobile/src/features/settings/components/settings-page-targets.ts delete mode 100644 apps/mobile/src/features/settings/components/settings-sheet-targets.ts create mode 100644 apps/mobile/src/features/settings/settings-navigation.ts delete mode 100644 apps/mobile/src/features/workspace/AndroidWorkspaceSettings.tsx create mode 100644 apps/mobile/src/features/workspace/workspace-selection-store.ts create mode 100644 apps/mobile/src/features/workspace/workspace-tab-navigation.test.ts create mode 100644 apps/mobile/src/features/workspace/workspace-tab-navigation.ts create mode 100644 apps/mobile/src/lib/root-stack-reset.ts diff --git a/apps/mobile/src/App.tsx b/apps/mobile/src/App.tsx index 2ab9a1a191b2..f2e44cec71c7 100644 --- a/apps/mobile/src/App.tsx +++ b/apps/mobile/src/App.tsx @@ -31,6 +31,13 @@ import { useUiRuntimeMemoryWarningGc } from "./lib/useUiRuntimeMemoryWarningGc"; import { SubscriptionUsageCoordinator } from "./widgets/SubscriptionUsageCoordinator"; import { VoiceInputProvider } from "./features/voice-input/VoiceInputProvider"; import { GlobalVoiceInputControl } from "./features/voice-input/GlobalVoiceInputControl"; +import { restoreSettingsLinkState } from "./features/settings/settings-navigation"; +import { + hydrateWorkspaceSelections, + launchWorkspaceURL, + recordWorkspaceSelections, + settingsLinkPage, +} from "./features/workspace/workspace-selection-store"; import { NativeLayoutMetricsProvider } from "./native/native-layout-metrics"; import "../global.css"; @@ -40,13 +47,18 @@ if (process.env.EXPO_PUBLIC_SHOWCASE === "1") { } void SplashScreen.preventAutoHideAsync().catch(() => {}); +void hydrateWorkspaceSelections(); const appLinking = { prefixes: [Linking.createURL("/"), "t3code://", "t3code-dev://", "t3code-preview://"], config: { initialRouteName: "Home" }, filter: shouldHandleAppLink, + getInitialURL: async () => (await Linking.getInitialURL()) ?? (await launchWorkspaceURL()), getStateFromPath: (path: string, options: Parameters[1]) => - restoreDraftLinkState(getStateFromPath(path, options), path), + restoreSettingsLinkState( + restoreDraftLinkState(getStateFromPath(path, options), path), + settingsLinkPage(), + ), }; const Navigation = createStaticNavigation(RootStack); @@ -107,7 +119,11 @@ function AppContent() { - + diff --git a/apps/mobile/src/Stack.tsx b/apps/mobile/src/Stack.tsx index bcd1a97ce529..2fed9166e27c 100644 --- a/apps/mobile/src/Stack.tsx +++ b/apps/mobile/src/Stack.tsx @@ -3,7 +3,6 @@ import { ComponentCatalogScreen } from "./features/development/ComponentCatalogS import { PullRequestGuideStopScreen } from "./features/pull-requests/guide/PullRequestGuideScreen"; import { PullRequestInlineCommentScreen } from "./features/pull-requests/PullRequestInlineCommentScreen"; import { PullRequestDiscussionScreen } from "./features/pull-requests/PullRequestDiscussionScreen"; -import { createV5SheetStackNavigator } from "./native/createV5StackNavigator"; import { createWorkspaceStackNavigator } from "./features/layout/createWorkspaceStackNavigator"; import { createPathConfigForStaticNavigation, @@ -25,7 +24,6 @@ import { androidWorkspaceDestinationAnimation } from "./lib/android-workspace-na import { getCompactBrandHeaderOptions } from "./components/CompactBrandTitle"; import { WorkspaceConnectionStatusProvider } from "./features/home/WorkspaceConnectionTitle"; import { WorkspaceRootScreen } from "./features/workspace/WorkspaceRootScreen"; -import { AndroidWorkspaceSettings } from "./features/workspace/AndroidWorkspaceSettings"; import { AndroidWorkspaceTabsProvider } from "./features/workspace/AndroidWorkspaceTabsProvider"; import { PullRequestRouteScreen, @@ -109,7 +107,6 @@ import { ScheduledTaskModelPickerRouteScreen, ScheduledTaskBranchPickerRouteScreen, } from "./features/settings/ScheduledTaskPickerScreens"; -import { ScheduledTaskEditorProvider } from "./features/settings/scheduled-task-editor"; import { SettingsKeyboardRouteScreen } from "./features/settings/SettingsKeyboardRouteScreen"; import { SettingsLegalRouteScreen } from "./features/settings/SettingsLegalRouteScreen"; import { SettingsMicrophoneRouteScreen } from "./features/settings/SettingsMicrophoneRouteScreen"; @@ -126,6 +123,12 @@ import { SettingsNotificationsRouteScreen } from "./features/settings/SettingsNo import { SettingsRouteScreen } from "./features/settings/SettingsRouteScreen"; import { SettingsThreadsRouteScreen } from "./features/settings/SettingsThreadsRouteScreen"; import { SettingsEnvironmentFilterProvider } from "./features/settings/settings-environment-filter"; +import { openSettings, settingsOpenIn } from "./features/settings/settings-navigation"; +import { DEFAULT_SETTINGS_PAGE } from "./features/workspace/workspace-tab-navigation"; +import { + isWorkspaceOverlayRoute, + registerPresentedRoutes, +} from "./features/layout/workspace-overlay-routes"; import { ShowcaseCaptureCoordinator } from "./features/showcase/ShowcaseCaptureCoordinator"; import { SettingsLegalDocumentCloseHeaderButton, @@ -212,8 +215,6 @@ const LEGAL_DOCUMENT_HEADER_OPTIONS: AppScreenOptions = { presentation: "fullScreenModal", }; -const NESTED_NAVIGATOR_OPTIONS = { nativeContentInsetHorizontally: false, headerShown: false }; - // Thread settings keep the Duo's vertical bar so cancel, search, filter and confirm sit in the // rail. The picker stack spans the sheet so its header reaches the rail, and insets its content. const THREAD_SETTINGS_SHEET_OPTIONS = { @@ -223,295 +224,253 @@ const THREAD_SETTINGS_SHEET_OPTIONS = { nativeContentInsetHorizontally: false, }; -const SettingsContentStack = createV5SheetStackNavigator({ - initialRouteName: "Settings", - screenOptions: { - ...GLASS_HEADER_OPTIONS, - unstable_navigationItemStyle: undefined, - }, - screens: { - Settings: createNativeStackScreen({ - screen: SettingsRouteScreen, - linking: "", - options: { - title: "Settings", - // Android draws its own app bar here. Hidden only from inside the screen, the native one - // showed for the first frame of the Settings tab and pushed the page down. - headerShown: Platform.OS !== "android", - headerBackVisible: false, - }, - }), - SettingsEnvironments: createNativeStackScreen({ - screen: SettingsEnvironmentsRouteScreen, - linking: "environments", - options: { - title: "Environments", - }, - }), - SettingsEnvironmentDetail: createNativeStackScreen({ - screen: SettingsEnvironmentDetailRouteScreen, - linking: "environments/:environmentId", - options: { title: "Environment" }, - }), - SettingsEnvironmentNewThreads: createNativeStackScreen({ - screen: SettingsEnvironmentNewThreadsRouteScreen, - linking: "new-threads", - options: { title: "New threads" }, - }), - SettingsEnvironmentSourceControl: createNativeStackScreen({ - screen: SettingsEnvironmentSourceControlRouteScreen, - linking: "source-control", - options: { title: "Source control" }, - }), - SettingsEnvironmentAgentBehavior: createNativeStackScreen({ - screen: SettingsEnvironmentAgentBehaviorRouteScreen, - linking: "agent-behavior", - options: { title: "Agent behavior" }, - }), - SettingsProviderAccounts: createNativeStackScreen({ - screen: SettingsProviderAccountsRouteScreen, - linking: "provider-accounts", - options: { title: "Provider accounts" }, - }), - SettingsEnvironmentMaintenance: createNativeStackScreen({ - screen: SettingsEnvironmentMaintenanceRouteScreen, - linking: "maintenance", - options: { title: "Maintenance" }, - }), - SettingsNotifications: createNativeStackScreen({ - screen: SettingsNotificationsRouteScreen, - linking: "notifications", - options: { title: "Notifications" }, - }), - SettingsThreads: createNativeStackScreen({ - screen: SettingsThreadsRouteScreen, - linking: "thread-preferences", - options: { title: "Thread behavior" }, - }), - SettingsAbout: createNativeStackScreen({ - screen: SettingsAboutRouteScreen, - linking: "about", - options: { title: "About T3 Code" }, - }), - SettingsEnvironmentNew: createNativeStackScreen({ - screen: ConnectionsNewRouteScreen, - linking: "environment-new", - options: { - title: "Add Environment", - }, - }), - SettingsArchive: createNativeStackScreen({ - screen: ArchivedThreadsRouteScreen, - linking: "archive", - options: { - title: "Archived Threads", - }, - }), - SettingsNavigation: createNativeStackScreen({ - screen: SettingsNavigationRouteScreen, - linking: "navigation-tabs", - options: { title: "Navigation tabs" }, - }), - SettingsAppearance: createNativeStackScreen({ - screen: SettingsAppearanceRouteScreen, - linking: "appearance", - options: { - title: "Appearance", - }, - }), - SettingsProjectGrouping: createNativeStackScreen({ - screen: SettingsProjectGroupingRouteScreen, - linking: "project-grouping", - options: { - title: "Organization", - }, - }), - SettingsOrganization: createNativeStackScreen({ - screen: SettingsProjectGroupingRouteScreen, - linking: "organization", - options: { - title: "Organization", - }, - }), - SettingsProjectOverview: createNativeStackScreen({ - screen: SettingsProjectOverviewRouteScreen, - linking: "project", - options: { title: "Project overview" }, - }), - SettingsKeyboard: createNativeStackScreen({ - screen: SettingsKeyboardRouteScreen, - linking: "keyboard", - options: { - title: "Keyboard", - }, - }), - SettingsMicrophone: createNativeStackScreen({ - screen: SettingsMicrophoneRouteScreen, - linking: "microphone", - options: { - title: "Microphone", - }, - }), - SettingsFollowUp: createNativeStackScreen({ - screen: SettingsFollowUpRouteScreen, - linking: "follow-ups", - options: { - title: "Follow-ups", - }, - }), - SettingsScheduledTasks: createNativeStackScreen({ - screen: SettingsScheduledTasksRouteScreen, - linking: "scheduled-tasks", - options: { - title: "Scheduled Tasks", - headerTitleStyle: { fontSize: 16, fontWeight: "800" }, - }, - }), - SettingsScheduledTaskNew: createNativeStackScreen({ - screen: SettingsScheduledTaskNewRouteScreen, - linking: "scheduled-tasks/new", - options: { title: "New scheduled task" }, - }), - SettingsScheduledTaskEdit: createNativeStackScreen({ - screen: SettingsScheduledTaskEditRouteScreen, - options: { title: "Edit scheduled task" }, - }), - SettingsScheduledTaskBranch: createNativeStackScreen({ - screen: ScheduledTaskBranchPickerRouteScreen, - options: { title: "Base branch" }, - }), - SettingsScheduledTaskModel: createNativeStackScreen({ - screen: ScheduledTaskModelPickerRouteScreen, - options: { - headerShown: false, - ...(Platform.OS === "android" - ? { presentation: "card" as const } - : { - ...THREAD_SETTINGS_SHEET_OPTIONS, - }), - }, - }), - SettingsClientStorage: createNativeStackScreen({ - screen: SettingsClientStorageRouteScreen, - linking: "client-storage", - options: { - title: "Client Storage", - }, - }), - SettingsDiagnostics: createNativeStackScreen({ - screen: SettingsDiagnosticsRouteScreen, - linking: "diagnostics", - options: { - title: "Diagnostics", - }, - }), - // Its params are a tap-time snapshot, not a stable resource address: `now` is the wall-clock - // of the tap, `environmentIds` is the usage screen's local filter selection, and the window - // id/kind identify freshly aggregated pools. React Navigation round-trips non-path params - // through the URL as query strings, so a path here would bake in a permanently stale - // timestamp and filter. - SettingsUsageAccount: createNativeStackScreen({ - screen: UsageLimitAccountScreen, - options: { title: "Account" }, - }), - SettingsOpenSourceLicenses: createNativeStackScreen({ - screen: SettingsOpenSourceLicensesRouteScreen, - linking: "open-source-licenses", - options: { - title: "Open source licenses", - }, - }), - SettingsOpenSourceLicense: createNativeStackScreen({ - screen: SettingsOpenSourceLicenseRouteScreen, - linking: "open-source-licenses/:entryKey", - options: { - title: "License notice", - }, - }), - SettingsUsage: createNativeStackScreen({ - screen: UsageRouteScreen, - linking: "usage", - options: { - title: "Usage", - }, - }), - }, -}); +// Settings pages are root routes so they share the workspace's columns and header. The +// `Settings` route marks the Settings tab as open (see settings-navigation.ts). +const SETTINGS_PAGE_OPTIONS = SHEET_GLASS_HEADER_OPTIONS; -// Keeping bar visibility invariant avoids iOS 26's headerless-to-headered jump. -const SettingsSheetStack = createV5SheetStackNavigator({ - initialRouteName: "SettingsContent", - screenOptions: { - headerShown: false, - }, - screens: { - SettingsContent: createNativeStackScreen({ - screen: SettingsContentStack, - options: NESTED_NAVIGATOR_OPTIONS, - linking: "", - layout: ({ children }) => ( - - {children} - - ), - }), - SettingsAuth: createNativeStackScreen({ - screen: SettingsAuthRouteScreen, - linking: "auth", - }), - SettingsWaitlist: createNativeStackScreen({ - screen: SettingsAuthRouteScreen, - linking: "waitlist", - }), - }, -}); +const SETTINGS_SCREENS = { + Settings: createNativeStackScreen({ + screen: SettingsRouteScreen, + linking: "settings", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Settings", + ...(Platform.OS === "android" ? { animation: "none" as const } : {}), + // Android draws its own app bar here. Hidden only from inside the screen, the native one + // showed for the first frame of the Settings tab and pushed the page down. + headerShown: Platform.OS !== "android", + headerBackVisible: false, + }, + }), + SettingsEnvironments: createNativeStackScreen({ + screen: SettingsEnvironmentsRouteScreen, + linking: "settings/environments", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Environments", + }, + }), + SettingsEnvironmentDetail: createNativeStackScreen({ + screen: SettingsEnvironmentDetailRouteScreen, + linking: "settings/environments/:environmentId", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Environment" }, + }), + SettingsEnvironmentNewThreads: createNativeStackScreen({ + screen: SettingsEnvironmentNewThreadsRouteScreen, + linking: "settings/new-threads", + options: { ...SETTINGS_PAGE_OPTIONS, title: "New threads" }, + }), + SettingsEnvironmentSourceControl: createNativeStackScreen({ + screen: SettingsEnvironmentSourceControlRouteScreen, + linking: "settings/source-control", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Source control" }, + }), + SettingsEnvironmentAgentBehavior: createNativeStackScreen({ + screen: SettingsEnvironmentAgentBehaviorRouteScreen, + linking: "settings/agent-behavior", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Agent behavior" }, + }), + SettingsProviderAccounts: createNativeStackScreen({ + screen: SettingsProviderAccountsRouteScreen, + linking: "settings/provider-accounts", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Provider accounts" }, + }), + SettingsEnvironmentMaintenance: createNativeStackScreen({ + screen: SettingsEnvironmentMaintenanceRouteScreen, + linking: "settings/maintenance", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Maintenance" }, + }), + SettingsNotifications: createNativeStackScreen({ + screen: SettingsNotificationsRouteScreen, + linking: "settings/notifications", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Notifications" }, + }), + SettingsThreads: createNativeStackScreen({ + screen: SettingsThreadsRouteScreen, + linking: "settings/thread-preferences", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Thread behavior" }, + }), + SettingsAbout: createNativeStackScreen({ + screen: SettingsAboutRouteScreen, + linking: "settings/about", + options: { ...SETTINGS_PAGE_OPTIONS, title: "About T3 Code" }, + }), + SettingsEnvironmentNew: createNativeStackScreen({ + screen: ConnectionsNewRouteScreen, + linking: "settings/environment-new", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Add Environment", + }, + }), + SettingsArchive: createNativeStackScreen({ + screen: ArchivedThreadsRouteScreen, + linking: "settings/archive", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Archived Threads", + }, + }), + SettingsNavigation: createNativeStackScreen({ + screen: SettingsNavigationRouteScreen, + linking: "settings/navigation-tabs", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Navigation tabs" }, + }), + SettingsAppearance: createNativeStackScreen({ + screen: SettingsAppearanceRouteScreen, + linking: "settings/appearance", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Appearance", + }, + }), + SettingsProjectGrouping: createNativeStackScreen({ + screen: SettingsProjectGroupingRouteScreen, + linking: "settings/project-grouping", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Organization", + }, + }), + SettingsOrganization: createNativeStackScreen({ + screen: SettingsProjectGroupingRouteScreen, + linking: "settings/organization", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Organization", + }, + }), + SettingsProjectOverview: createNativeStackScreen({ + screen: SettingsProjectOverviewRouteScreen, + linking: "settings/project", + options: { ...SETTINGS_PAGE_OPTIONS, title: "Project overview" }, + }), + SettingsKeyboard: createNativeStackScreen({ + screen: SettingsKeyboardRouteScreen, + linking: "settings/keyboard", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Keyboard", + }, + }), + SettingsMicrophone: createNativeStackScreen({ + screen: SettingsMicrophoneRouteScreen, + linking: "settings/microphone", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Microphone", + }, + }), + SettingsFollowUp: createNativeStackScreen({ + screen: SettingsFollowUpRouteScreen, + linking: "settings/follow-ups", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Follow-ups", + }, + }), + SettingsScheduledTasks: createNativeStackScreen({ + screen: SettingsScheduledTasksRouteScreen, + linking: "settings/scheduled-tasks", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Scheduled Tasks", + headerTitleStyle: { fontSize: 16, fontWeight: "800" }, + }, + }), + SettingsScheduledTaskNew: createNativeStackScreen({ + screen: SettingsScheduledTaskNewRouteScreen, + linking: "settings/scheduled-tasks/new", + options: { ...SETTINGS_PAGE_OPTIONS, title: "New scheduled task" }, + }), + SettingsScheduledTaskEdit: createNativeStackScreen({ + screen: SettingsScheduledTaskEditRouteScreen, + options: { ...SETTINGS_PAGE_OPTIONS, title: "Edit scheduled task" }, + }), + SettingsScheduledTaskBranch: createNativeStackScreen({ + screen: ScheduledTaskBranchPickerRouteScreen, + options: { ...SETTINGS_PAGE_OPTIONS, title: "Base branch" }, + }), + SettingsScheduledTaskModel: createNativeStackScreen({ + screen: ScheduledTaskModelPickerRouteScreen, + options: { + ...SETTINGS_PAGE_OPTIONS, + headerShown: false, + ...(Platform.OS === "android" + ? { presentation: "card" as const } + : { + ...THREAD_SETTINGS_SHEET_OPTIONS, + }), + }, + }), + SettingsClientStorage: createNativeStackScreen({ + screen: SettingsClientStorageRouteScreen, + linking: "settings/client-storage", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Client Storage", + }, + }), + SettingsDiagnostics: createNativeStackScreen({ + screen: SettingsDiagnosticsRouteScreen, + linking: "settings/diagnostics", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Diagnostics", + }, + }), + // Its params are a tap-time snapshot, not a stable resource address: `now` is the wall-clock + // of the tap, `environmentIds` is the usage screen's local filter selection, and the window + // id/kind identify freshly aggregated pools. React Navigation round-trips non-path params + // through the URL as query strings, so a path here would bake in a permanently stale + // timestamp and filter. + SettingsUsageAccount: createNativeStackScreen({ + screen: UsageLimitAccountScreen, + options: { ...SETTINGS_PAGE_OPTIONS, title: "Account" }, + }), + SettingsOpenSourceLicenses: createNativeStackScreen({ + screen: SettingsOpenSourceLicensesRouteScreen, + linking: "settings/open-source-licenses", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Open source licenses", + }, + }), + SettingsOpenSourceLicense: createNativeStackScreen({ + screen: SettingsOpenSourceLicenseRouteScreen, + linking: "settings/open-source-licenses/:entryKey", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "License notice", + }, + }), + SettingsUsage: createNativeStackScreen({ + screen: UsageRouteScreen, + linking: "settings/usage", + options: { + ...SETTINGS_PAGE_OPTIONS, + title: "Usage", + }, + }), + SettingsAuth: createNativeStackScreen({ + screen: SettingsAuthRouteScreen, + linking: "settings/auth", + options: { headerShown: false, presentation: "modal" }, + }), + SettingsWaitlist: createNativeStackScreen({ + screen: SettingsAuthRouteScreen, + linking: "settings/waitlist", + options: { headerShown: false, presentation: "modal" }, + }), +}; // A nested stack means a second UINavigationController with its own UINavigationBar, which breaks // iOS 26's shared-header morphing between Home and Thread (each pair inside one bar morphs; // across two bars the whole screen slides). const THREAD_LINKING_PREFIX = "threads/:environmentId/:threadId"; -const WORKSPACE_OVERLAY_ROUTES = new Set([ - "PullRequestReview", - "PullRequestInlineComment", - "ConnectOnboarding", - "Connections", - "ConnectionsNew", - "GitBranches", - "GitCommit", - "GitConfirm", - "GitOverview", - "NewTaskProject", - "NewTaskFiles", - "NewTaskFile", - "NewTaskAttachment", - "NewTaskThreadSettings", - "AddProject", - "AddProjectRepository", - "AddProjectDestination", - "AddProjectLocal", - "AddProjectNew", - "NewTaskEnvironment", - "NewTaskBranch", - "SettingsLegal", - "SettingsSheet", - "ThreadAgents", - "ThreadBackgroundWork", - "ThreadPullRequests", - "ThreadQueue", - "ThreadReviewComment", - "ThreadDevicePreview", - "ThreadBrowserPreview", - "ThreadSettingsSheet", -]); - function workspaceLocationFromState(state: NavigationState) { - // Android opens Settings as a workspace page rather than an overlay, so the layout sees it. - const routes = state.routes.filter( - (route) => - !WORKSPACE_OVERLAY_ROUTES.has(route.name) || - (Platform.OS === "android" && route.name === "SettingsSheet"), - ); + const routes = state.routes.filter((route) => !isWorkspaceOverlayRoute(route.name)); const effectiveState = routes.length > 0 && routes.length !== state.routes.length ? ({ ...state, routes, index: routes.length - 1 } as NavigationState) @@ -543,6 +502,11 @@ function RootStackLayout(props: { const path = getPathFromState(props.state, navigationPathConfig); const pathname = path.startsWith("/") ? path : `/${path}`; const workspaceLocation = workspaceLocationFromState(props.state); + const settingsOpen = settingsOpenIn( + props.state.routes + .slice(0, props.state.index + 1) + .filter((route) => !isWorkspaceOverlayRoute(route.name)), + ); const draftRoute = props.state.routes.findLast((route) => route.name === "Thread"); const draftParams = ( draftRoute?.params as @@ -579,20 +543,22 @@ function RootStackLayout(props: { - - - - - {props.children} - - - - - + + + + + + {props.children} + + + + + + ); @@ -974,18 +940,7 @@ const RootStackConfig = createWorkspaceStackNavigator({ sheetGrabberVisible: true, }, }), - SettingsSheet: createNativeStackScreen({ - screen: SettingsSheetStack, - layout: ({ children }) => {children}, - linking: "settings", - options: { - ...NESTED_NAVIGATOR_OPTIONS, - gestureEnabled: true, - headerShown: false, - presentation: "card", - animation: "none", - }, - }), + ...SETTINGS_SCREENS, SettingsLegal: createNativeStackScreen({ screen: SettingsLegalRouteScreen, linking: "settings/legal", @@ -1063,12 +1018,27 @@ function ScreenRenderFallback(props: RenderFailureProps & { readonly routeName: const exit = navigation.canGoBack() ? { label: "Go back", onPress: () => navigation.goBack() } : props.routeName === "Home" - ? { label: "Open settings", onPress: () => navigation.navigate("SettingsSheet") } + ? // Home itself failed, and the Settings list renders inside it; open a Settings page. + { + label: "Open settings", + onPress: () => openSettings(navigation, DEFAULT_SETTINGS_PAGE), + } : { label: "Return home", onPress: () => navigation.dispatch(StackActions.replace("Home")) }; return ; } +registerPresentedRoutes( + Object.entries(RootStackConfig.config.screens ?? {}).flatMap(([name, screen]) => { + const options = (screen as { readonly options?: unknown }).options; + const presentation = + options && typeof options === "object" + ? (options as { readonly presentation?: string }).presentation + : undefined; + return presentation !== undefined && presentation !== "card" ? [name] : []; + }), +); + export const RootStack = RootStackConfig.with(function AdaptiveRootStack({ Navigator }) { const { width, height } = useWindowDimensions(); const nativeMetrics = useNativeLayoutMetrics(); @@ -1078,7 +1048,7 @@ export const RootStack = RootStackConfig.with(function AdaptiveRootStack({ Navig } screenOptions={({ route }) => - Platform.OS === "android" && route.name !== "SettingsSheet" + Platform.OS === "android" ? { animation: androidWorkspaceDestinationAnimation(route.name, usesSplitView) } : {} } diff --git a/apps/mobile/src/features/cloud/connectOnboardingNavigation.ts b/apps/mobile/src/features/cloud/connectOnboardingNavigation.ts index d4393d426539..734db0ff82dc 100644 --- a/apps/mobile/src/features/cloud/connectOnboardingNavigation.ts +++ b/apps/mobile/src/features/cloud/connectOnboardingNavigation.ts @@ -6,8 +6,8 @@ import { appAtomRegistry } from "../../state/atom-registry"; import { clearConnectOnboardingRequest, connectOnboardingRequestAtom } from "./connectOnboarding"; import { isConnectOnboardingOptedOut } from "./connectOnboardingOptOut"; -// Sign-in happens inside the Settings sheet; give its session-state transition -// a beat to settle before presenting another formSheet on top. +// Sign-in happens in its own modal; give its session-state transition a beat to +// settle before presenting another formSheet on top. const PRESENT_ONBOARDING_DELAY_MS = 600; /** diff --git a/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx b/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx index 9cad44c7daaf..03d589e7719e 100644 --- a/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx +++ b/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx @@ -32,6 +32,9 @@ import { SymbolView } from "../../components/ui/AppSymbol"; import { hasCloudPublicConfig } from "../cloud/publicConfig"; import { CloudEnvironmentRows } from "./CloudEnvironmentRows"; import { splitEnvironmentSections } from "./environmentSections"; +import { openSettings } from "../settings/settings-navigation"; +import { leaveSettingsPage } from "../settings/settings-navigation"; +import { workspaceHasColumns } from "../workspace/workspace-selection-store"; type ConnectionsNewRouteParams = { readonly mode?: string; @@ -168,7 +171,8 @@ export function ConnectionsNewRouteScreen({ if (!navigation.canGoBack()) { navigation.dispatch(StackActions.replace("Home")); } else { - navigation.goBack(); + // Added from the Settings list, the new environment shows on Environments. + leaveSettingsPage(navigation, workspaceHasColumns(), "SettingsEnvironments"); } } }; @@ -390,7 +394,7 @@ function T3ConnectSection() { label="Sign in to T3 Connect" description="Reach your machines from anywhere, no network setup." disabled={!isLoaded} - onPress={() => navigation.navigate("SettingsSheet", { screen: "SettingsAuth" })} + onPress={() => navigation.navigate("SettingsAuth")} /> )} diff --git a/apps/mobile/src/features/home/HomeRouteScreen.tsx b/apps/mobile/src/features/home/HomeRouteScreen.tsx index 494966d886f6..684e7ef5e358 100644 --- a/apps/mobile/src/features/home/HomeRouteScreen.tsx +++ b/apps/mobile/src/features/home/HomeRouteScreen.tsx @@ -34,6 +34,8 @@ import { usePendingTaskListActions } from "./usePendingTaskListActions"; import { useThreadListActions } from "./useThreadListActions"; import { getConnectionAwareBrandHeaderOptions } from "./WorkspaceConnectionTitle"; import { useWorkspaceTabs } from "../workspace/WorkspaceTabsContext"; +import { openSettings } from "../settings/settings-navigation"; +import { useSelectWorkspaceTab } from "../workspace/useSelectWorkspaceTab"; export function HomeRouteScreen() { const { width: windowWidth } = useWindowDimensions(); @@ -54,6 +56,7 @@ export function HomeRouteScreen() { const { environments: workspaceEnvironments, state: catalogState } = useWorkspaceState(); const { savedConnectionsById } = useSavedRemoteConnections(); const navigation = useNavigation(); + const selectTab = useSelectWorkspaceTab(); const workspace = useWorkspaceTabs(); const [localSearchQuery, setLocalSearchQuery] = useState(""); const searchQuery = @@ -187,11 +190,7 @@ export function HomeRouteScreen() { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironmentNew" }, - }) + ? () => openSettings(navigation, "SettingsEnvironmentNew") : undefined } onStartNewTask={ @@ -217,11 +216,7 @@ export function HomeRouteScreen() { ...getConnectionAwareBrandHeaderOptions({ headerWidth, trailingItemCount: nativePrimaryColumn && deviceType === "pad" ? 2 : 1, - onOpenEnvironments: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironments" }, - }), + onOpenEnvironments: () => openSettings(navigation, "SettingsEnvironments"), }), headerShown: Platform.OS !== "android", }} @@ -235,18 +230,8 @@ export function HomeRouteScreen() { selectedProjectKey={selectedProjectKey} onEnvironmentChange={setSelectedEnvironmentId} onProjectChange={setSelectedProjectKey} - onOpenEnvironments={() => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironments" }, - }) - } - onOpenSettings={() => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }) - } + onOpenEnvironments={() => openSettings(navigation, "SettingsEnvironments")} + onOpenSettings={() => selectTab("settings")} onSearchQueryChange={setSearchQuery} onStartNewTask={startNewTask} /> @@ -254,12 +239,7 @@ export function HomeRouteScreen() { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironmentNew" }, - }) - } + onAddConnection={() => openSettings(navigation, "SettingsEnvironmentNew")} onArchiveThread={archiveThread} onDeleteThread={confirmDeleteThread} onSettleThread={settleThread} @@ -274,12 +254,7 @@ export function HomeRouteScreen() { onRegenerateThreadTitle={regenerateThreadTitle} onEnvironmentChange={setSelectedEnvironmentId} onProjectChange={setSelectedProjectKey} - onOpenSettings={() => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }) - } + onOpenSettings={() => selectTab("settings")} onSearchQueryChange={setSearchQuery} onSelectThread={handleSelectThread} onSelectPendingTask={openPendingTask} diff --git a/apps/mobile/src/features/keyboard/CommandPalette.tsx b/apps/mobile/src/features/keyboard/CommandPalette.tsx index 038152aab1f0..5fa730cd1d38 100644 --- a/apps/mobile/src/features/keyboard/CommandPalette.tsx +++ b/apps/mobile/src/features/keyboard/CommandPalette.tsx @@ -60,6 +60,8 @@ import { import { parseActiveThreadPath, type HardwareKeyboardCommand } from "./hardwareKeyboardCommands"; import { threadJumpIndex } from "./threadKeyboardShortcuts"; import { PullRequestGlyph } from "../pull-requests/pullRequestGlyphs"; +import { openSettings } from "../settings/settings-navigation"; +import { useSelectWorkspaceTab } from "../workspace/useSelectWorkspaceTab"; const PALETTE_COMMANDS: ReadonlyArray = [ "commandPalette", @@ -208,6 +210,7 @@ export function CommandPalette(props: { readonly onCommand: (command: HardwareKeyboardCommand) => void; }) { const navigation = useNavigation(); + const selectTab = useSelectWorkspaceTab(); const { themeVariables } = useAppearancePreferences(); const { selectThread, selectThreadRoute } = useAdaptiveWorkspaceLayout(); const runCommand = props.onCommand; @@ -269,66 +272,42 @@ export function CommandPalette(props: { kind: "action", title: "Open settings", searchTerms: ["preferences", "configuration"], - run: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }), + run: () => selectTab("settings"), }, { key: "appearance", kind: "action", title: "Appearance", searchTerms: ["theme", "colors", "dark", "light"], - run: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsAppearance" }, - }), + run: () => openSettings(navigation, "SettingsAppearance"), }, { key: "environments", kind: "action", title: "Manage environments", searchTerms: ["connections", "server", "remote"], - run: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironments" }, - }), + run: () => openSettings(navigation, "SettingsEnvironments"), }, { key: "scheduledTasks", kind: "action", title: "Scheduled tasks", searchTerms: ["schedule", "automations", "recurring"], - run: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsScheduledTasks" }, - }), + run: () => openSettings(navigation, "SettingsScheduledTasks"), }, { key: "usage", kind: "action", title: "Usage", searchTerms: ["limits", "accounts", "quota"], - run: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsUsage" }, - }), + run: () => openSettings(navigation, "SettingsUsage"), }, { key: "archive", kind: "action", title: "Archived threads", searchTerms: ["restore", "history"], - run: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsArchive" }, - }), + run: () => openSettings(navigation, "SettingsArchive"), }, ]; const projectByKey = new Map( @@ -423,6 +402,7 @@ export function CommandPalette(props: { ); return [...actions, ...projectItems, ...threadItems]; }, [ + selectTab, activeThread, activeThreadRef, environments.length, diff --git a/apps/mobile/src/features/keyboard/HardwareKeyboardCommandProvider.tsx b/apps/mobile/src/features/keyboard/HardwareKeyboardCommandProvider.tsx index cdbfc7d446de..df104a711884 100644 --- a/apps/mobile/src/features/keyboard/HardwareKeyboardCommandProvider.tsx +++ b/apps/mobile/src/features/keyboard/HardwareKeyboardCommandProvider.tsx @@ -1,4 +1,5 @@ import { StackActions, useNavigation } from "@react-navigation/native"; +import { Platform } from "react-native"; import { resolveThreadReferenceCopyTarget } from "@t3tools/client-runtime/thread-reference"; import { createContext, @@ -14,6 +15,10 @@ import { } from "react"; import { tryCopyTextWithHaptic } from "../../lib/copyTextWithHaptic"; +import { + firstWorkspaceDetailOpen, + workspaceHasColumns, +} from "../workspace/workspace-selection-store"; import { T3KeyboardCommands } from "../../native/T3KeyboardCommands"; import { useThreadShell } from "../../state/entities"; import type { GitActionProgress } from "../../state/use-vcs-action-state"; @@ -152,6 +157,9 @@ export function HardwareKeyboardCommandProvider({ return; } if (command === "back") { + // Beside a visible list, the first detail page has nothing to go back to. + if (Platform.OS === "ios" && workspaceHasColumns() && firstWorkspaceDetailOpen(navigation)) + return; if (navigation.canGoBack()) { navigation.goBack(); } else { diff --git a/apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx b/apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx index 3cfeff980e5c..a1676b31ed38 100644 --- a/apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx +++ b/apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx @@ -1,3 +1,4 @@ +import { SafeAreaInsetsContext, useSafeAreaInsets } from "react-native-safe-area-context"; import { AdaptiveWorkspaceContext, useAdaptiveWorkspaceLayout } from "./adaptive-workspace-context"; import { createDeferredNavigation } from "./deferred-navigation"; import { uuidv4 } from "../../lib/uuid"; @@ -43,6 +44,7 @@ import { type VerticalHinge, deriveWorkspacePaneLayout, isPrimarySidebarPinned, + isWorkspaceListPath, type WorkspaceAuxiliaryPaneRole, } from "../../lib/layout"; import { @@ -91,6 +93,16 @@ import { import { useNativeLayoutMetrics } from "../../native/native-layout-metrics"; import { AndroidHingeObserver } from "../../native/AndroidHingeObserver"; import { WindowHingeContext } from "../../native/window-hinge-context"; +import { useAndroidWorkspaceRoot } from "../workspace/AndroidWorkspaceTabsProvider"; +import { openSettings } from "../settings/settings-navigation"; +import { dispatchRootStackReset, rootStackState } from "../../lib/root-stack-reset"; +import { + currentWorkspaceSelections, + workspaceSelectionCheck, +} from "../workspace/workspace-selection-store"; +import { workspaceTabNavigationState } from "../workspace/workspace-tab-navigation"; +import type { WorkspaceTab } from "../workspace/workspace-tabs-state"; +import { workspaceRoutesOf } from "./workspace-overlay-routes"; export { useAdaptiveWorkspaceLayout }; @@ -207,9 +219,10 @@ function AdaptiveWorkspaceLayoutContent( const pathname = props.pathname; const workspace = useWorkspaceTabs(); // Settings and Usage occupy the workspace rather than a list/detail pair. + const androidSettingsOpen = useAndroidWorkspaceRoot()?.settingsOpen ?? false; + const safeAreaInsets = useSafeAreaInsets(); const workspacePage = - Platform.OS === "android" && - (pathname.startsWith("/settings") || workspace?.state.selectedTab === "usage"); + Platform.OS === "android" && (androidSettingsOpen || workspace?.state.selectedTab === "usage"); const navigation = useNavigation(); const activeRoleOwner = useRef(null); const [primarySidebarPreferredVisible, setPrimarySidebarPreferredVisible] = useState(true); @@ -233,10 +246,13 @@ function AdaptiveWorkspaceLayoutContent( () => deriveLayout({ width: viewportWidth, height, nativeMetrics, nativeWorkspace }), [height, viewportWidth, nativeMetrics, nativeWorkspace], ); + // The overlay sidebar closes when a page opens from it, and stays open on a list or on the + // page a tab switch opened (`keepOpenFor`, set by that switch). const [overlaySidebar, setOverlaySidebar] = useState({ active: baseLayout.primarySidebarOverlaysContent, pathname, - visible: pathname === "/", + visible: isWorkspaceListPath(pathname), + keepOpenFor: null as string | null, }); if ( overlaySidebar.active !== baseLayout.primarySidebarOverlaysContent || @@ -245,7 +261,11 @@ function AdaptiveWorkspaceLayoutContent( setOverlaySidebar({ active: baseLayout.primarySidebarOverlaysContent, pathname, - visible: pathname === "/", + visible: + isWorkspaceListPath(pathname) || + (overlaySidebar.keepOpenFor !== null && + overlaySidebar.keepOpenFor === props.workspaceRouteKey), + keepOpenFor: null, }); } const preferredSidebarVisible = baseLayout.primarySidebarOverlaysContent @@ -457,12 +477,35 @@ function AdaptiveWorkspaceLayoutContent( } setSupplementaryPanePreferredWidth(nextWidth); }; - const handleOpenSettings = () => { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }); + /** + * The one way to open a workspace tab: replaces the workspace with the tab's list and, when the + * window has columns, the page it last showed, keeping any sheet on top. An overlay sidebar + * stays open over that page. + */ + const openWorkspaceTab = ( + tab: WorkspaceTab | "settings", + options?: { readonly columns?: boolean }, + ) => { + const state = rootStackState(navigation); + if (!state) return; + const { workspace, overlays } = workspaceRoutesOf(state.routes.slice(0, state.index + 1)); + const next = workspaceTabNavigationState( + { ...state, routes: workspace }, + tab, + currentWorkspaceSelections(), + { + columns: Platform.OS === "ios" && (options?.columns ?? layout.usesSplitView), + check: workspaceSelectionCheck, + overlays, + }, + ); + if (layout.primarySidebarOverlaysContent) { + const opened = next.routes.at(-1 - overlays.length)?.key ?? null; + setOverlaySidebar((current) => ({ ...current, visible: true, keepOpenFor: opened })); + } + dispatchRootStackReset(navigation, state, next); }; + const handleOpenSettings = () => openWorkspaceTab("settings"); const selectAndroidWorkspace = useAndroidWorkspaceSelection(); const deferredThreadSelection = useMemo(() => createDeferredNavigation(), []); @@ -521,6 +564,8 @@ function AdaptiveWorkspaceLayoutContent( } const projects = useProjects(); + const compactAndroidSettings = + Platform.OS === "android" && androidSettingsOpen && !layout.usesSplitView; const handleStartNewTask = () => { const thread = appAtomRegistry .get(environmentThreadShells.navigationThreadShellsAtom) @@ -555,10 +600,7 @@ function AdaptiveWorkspaceLayoutContent( // Minted here (root stack navigation) so the sidebar pane stays free of // navigation hooks — on iOS it renders inside an independent nav tree. const handleOpenEnvironmentSettings = () => { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironments" }, - }); + openSettings(navigation, "SettingsEnvironments"); }; const handleOpenThreadPullRequests = useOpenThreadPullRequests(); @@ -771,6 +813,7 @@ function AdaptiveWorkspaceLayoutContent( toggleAuxiliaryPane, togglePrimarySidebar, setPrimarySidebarVisible, + openWorkspaceTab, setAuxiliaryPaneWidth, composerKeyboardActive, setComposerEditing, @@ -891,7 +934,17 @@ function AdaptiveWorkspaceLayoutContent( Platform.OS === "android" && layout.usesSplitView ? contentTargetWidth : null } > - {props.children} + {/* Compact Settings keeps the bottom navigation under all of its pages. */} + + {props.children} + + {compactAndroidSettings ? ( + + ) : null} diff --git a/apps/mobile/src/features/layout/WorkspaceEmptyDetail.tsx b/apps/mobile/src/features/layout/WorkspaceEmptyDetail.tsx index d58360e7e99c..aa33effa9369 100644 --- a/apps/mobile/src/features/layout/WorkspaceEmptyDetail.tsx +++ b/apps/mobile/src/features/layout/WorkspaceEmptyDetail.tsx @@ -8,13 +8,13 @@ import { EmptyState } from "../../components/ui/EmptyState"; import type { WorkspaceTab } from "../workspace/workspace-tabs-state"; export function WorkspaceEmptyDetail(props: { - readonly tab?: WorkspaceTab; + readonly tab?: WorkspaceTab | "settings"; readonly onStartNewTask?: () => void; readonly onAddConnection?: () => void; }) { const pullRequests = props.tab === "pullRequests"; - if (props.tab && props.tab !== "threads" && props.tab !== "pullRequests") - return ; + const settings = props.tab === "settings"; + if (props.tab === "usage") return ; return ( - {pullRequests ? "Select a pull request" : "Select a thread"} + {settings + ? "Select a setting" + : pullRequests + ? "Select a pull request" + : "Select a thread"} - {pullRequests - ? "Choose a pull request from the sidebar to review it." - : Platform.OS === "android" - ? "Choose a thread from the sidebar or start a new thread." - : "Choose a thread from the sidebar or start a new task."} + {settings + ? "Choose a page from the sidebar." + : pullRequests + ? "Choose a pull request from the sidebar to review it." + : Platform.OS === "android" + ? "Choose a thread from the sidebar or start a new thread." + : "Choose a thread from the sidebar or start a new task."} - {props.onStartNewTask && !pullRequests ? ( + {props.onStartNewTask && !pullRequests && !settings ? ( Platform.OS === "android" ? ( ) : ( diff --git a/apps/mobile/src/features/layout/adaptive-workspace-context.ts b/apps/mobile/src/features/layout/adaptive-workspace-context.ts index 122248db589d..04d82f548f37 100644 --- a/apps/mobile/src/features/layout/adaptive-workspace-context.ts +++ b/apps/mobile/src/features/layout/adaptive-workspace-context.ts @@ -1,3 +1,4 @@ +import type { WorkspaceTab } from "../workspace/workspace-tabs-state"; import { createContext, use, type ReactNode } from "react"; import type { EnvironmentThreadShell } from "@t3tools/client-runtime/state/shell"; import { @@ -26,6 +27,11 @@ interface AdaptiveWorkspaceContextValue { readonly toggleAuxiliaryPane: () => void; readonly togglePrimarySidebar: () => void; readonly setPrimarySidebarVisible: (visible: boolean) => void; + /** Opens a workspace tab with its list and, with columns, the page it last showed. */ + readonly openWorkspaceTab: ( + tab: WorkspaceTab | "settings", + options?: { readonly columns?: boolean }, + ) => void; readonly setAuxiliaryPaneWidth: (width: number) => void; /** * Android split view while the thread composer has the soft keyboard: the @@ -63,6 +69,7 @@ export const AdaptiveWorkspaceContext = createContext undefined, togglePrimarySidebar: () => undefined, setPrimarySidebarVisible: () => undefined, + openWorkspaceTab: () => undefined, setAuxiliaryPaneWidth: () => undefined, composerKeyboardActive: false, setComposerEditing: () => undefined, diff --git a/apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx b/apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx index bfa5ebf03f11..541c9ebc6ab2 100644 --- a/apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx +++ b/apps/mobile/src/features/layout/createWorkspaceStackNavigator.ios.tsx @@ -27,6 +27,9 @@ import { scopedThreadKey } from "../../lib/scopedEntities"; import { WorkspaceTabsProvider, useWorkspaceTabs } from "../workspace/WorkspaceTabsContext"; import { WorkspaceNativeTabs } from "../workspace/WorkspaceNativeTabs.ios"; import { workspaceUsesColumns } from "../workspace/workspace-tabs-state"; +import { isSettingsRoute, settingsOpenIn } from "../settings/settings-navigation"; +import { workspaceRoutesOf } from "./workspace-overlay-routes"; +import { useWorkspaceSidebarHeaderItem } from "./useWorkspaceSidebarHeaderItem"; import { useDeviceType, useNativeLayoutMetrics } from "../../native/native-layout-metrics"; import { useAdaptiveWorkspaceLayout } from "./AdaptiveWorkspaceLayout"; @@ -55,6 +58,8 @@ import { NativePrimaryColumnContext, NativeWorkspaceInspectorContext, NativeWorkspaceModeContext, + WorkspaceSlotOptionsContext, + slotScreenOptions, } from "../../native/v5-workspace-context"; type ViewProps = ComponentProps; @@ -66,6 +71,16 @@ const isPullRequestRoute = (route: Route) => route.name === "PullRequestFile" || route.name === "PullRequestFiles"; +/** Only these screens follow the sidebar's state; a thread's header draws its own toggle. */ +function SidebarToggleHeader(props: ComponentProps) { + const sidebarItem = useWorkspaceSidebarHeaderItem(); + const options = { + ...props.options, + unstable_headerLeftItems: () => [sidebarItem], + } as AppNativeStackNavigationOptions as typeof props.options; + return ; +} + function ColumnScreen(props: { readonly descriptor: Descriptor; readonly primary?: boolean; @@ -75,9 +90,19 @@ function ColumnScreen(props: { readonly onDismiss: (routeKey: string, native: boolean) => void; readonly onAppearance: (type: "willAppear" | "didAppear" | "willDisappear", key: string) => void; readonly onCompose?: () => void; + /** Settings pages don't draw their own sidebar toggle, unlike threads and pull requests. */ + readonly sidebarToggle?: boolean; readonly navigation: ViewProps["navigation"]; }) { const { descriptor } = props; + // Options a screen set inside this workspace tab slot, over its route's. + const options = slotScreenOptions( + use(WorkspaceSlotOptionsContext), + descriptor.route.key, + descriptor.options, + ); + const Header = + props.sidebarToggle && !options.unstable_headerLeftItems ? SidebarToggleHeader : V5StackHeader; const [presented, setPresented] = useState(false); const primaryColumn = useMemo( () => @@ -118,8 +143,8 @@ function ColumnScreen(props: { > - @@ -156,6 +181,7 @@ function WorkspaceColumns( setPrimarySidebarVisible, toggleAuxiliaryPane, startNewTask, + openWorkspaceTab, } = useAdaptiveWorkspaceLayout(); const deviceType = useDeviceType(); // Split screens must remain mounted while UIKit animates a detached route away. @@ -186,12 +212,16 @@ function WorkspaceColumns( }); } - const selectedTab = useWorkspaceTabs()?.state.selectedTab; + const workspaceTabs = useWorkspaceTabs(); + const selectedTab = workspaceTabs?.state.selectedTab; + const settingsOpen = workspaceTabs?.settingsOpen ?? false; const openNewTask = startNewTask; // The cover detail rail needs room for thread tools above the fixed tabs. // The unfolded Duo keeps compose in its detail bar. const detailCompose = - deviceType === "duo-unfolded" && selectedTab !== "pullRequests" ? openNewTask : undefined; + deviceType === "duo-unfolded" && selectedTab !== "pullRequests" && !settingsOpen + ? openNewTask + : undefined; const inspector = use(NativeWorkspaceInspectorContext); const hostRef = useRef(null); const activeDetailKey = props.detail.at(-1)?.key; @@ -274,6 +304,17 @@ function WorkspaceColumns( }} onExpand={() => { collapsed.current = false; + // Native callbacks can outlive the render that created them, so decide from the live + // router state. An expanded split has columns, so its tab gets a page beside the list. + const live = props.navigation.getState(); + const { workspace } = workspaceRoutesOf(live.routes.slice(0, live.index + 1)); + if (workspace.some((route) => route.name !== "Home" && route.name !== "Settings")) return; + const tab = workspace.some((route) => route.name === "Settings") + ? "settings" + : (["threads", "pullRequests", "usage"] as const).find((candidate) => + workspaceTabs?.isTabActive(candidate), + ); + openWorkspaceTab(tab ?? "threads", { columns: true }); }} preferredDisplayMode={ // UIKit applies the mode as a collapsed split expands, before the new width reaches JS, so a @@ -341,7 +382,7 @@ function WorkspaceColumns( /> current.key === route.key)} onDismiss={handleNativeDismiss} onAppearance={followCollapsedSplit} @@ -397,7 +443,7 @@ function WorkspaceStackView(props: ViewProps & { readonly nativeColumns: boolean const descriptors = props.descriptors; const baseRoute = { key: `${props.state.key}:workspace`, name: "Workspace" }; const visibleRoute = projection.detail.at(-1) ?? primaryRoute; - const workspacePage = !workspaceUsesColumns(workspace.state.selectedTab, visibleRoute.name); + const workspacePage = !workspaceUsesColumns(workspace.state.selectedTab, workspace.settingsOpen); const baseDescriptor: Descriptor = { ...primaryDescriptor, navigation: props.descriptors[visibleRoute.key]!.navigation, @@ -414,10 +460,6 @@ function WorkspaceStackView(props: ViewProps & { readonly nativeColumns: boolean !layout.usesSplitView && (metrics?.verticalBarEdge ?? "none") === "none" } - onSelect={() => { - if (props.state.index > 0) - props.navigation.dispatch({ type: "POP_TO_TOP", target: props.state.key }); - }} > {props.nativeColumns && !workspacePage ? ( { + const presentation = descriptors[route.key]?.options.presentation; + return presentation === undefined || presentation === "card"; + }), + ); return ( - + = new Set([ + "PullRequestReview", + "PullRequestInlineComment", + "ConnectOnboarding", + "Connections", + "ConnectionsNew", + "GitBranches", + "GitCommit", + "GitConfirm", + "GitOverview", + "NewTaskProject", + "NewTaskFiles", + "NewTaskFile", + "NewTaskAttachment", + "NewTaskThreadSettings", + "AddProject", + "AddProjectRepository", + "AddProjectDestination", + "AddProjectLocal", + "AddProjectNew", + "NewTaskEnvironment", + "NewTaskBranch", + "SettingsLegal", + "SettingsAuth", + "SettingsWaitlist", + "ThreadAgents", + "ThreadBackgroundWork", + "ThreadPullRequests", + "ThreadQueue", + "ThreadReviewComment", + "ThreadDevicePreview", + "ThreadBrowserPreview", + "ThreadSettingsSheet", +]); + +// Every route whose `presentation` is a sheet or modal, read from the root stack's config once. +let presentedRoutes: ReadonlySet = new Set(); + +export function registerPresentedRoutes(names: Iterable) { + presentedRoutes = new Set(names); +} + +/** Whether a root route is presented over the workspace (a sheet or modal). */ +export function isWorkspaceOverlayRoute(name: string) { + return LISTED_OVERLAY_ROUTES.has(name) || presentedRoutes.has(name); +} + +/** The routes that make up the workspace, up to the first sheet or modal above it. */ +export function workspaceRoutesOf( + routes: readonly Route[], +) { + const firstOverlay = routes.findIndex((route) => isWorkspaceOverlayRoute(route.name)); + return { + workspace: firstOverlay < 0 ? routes : routes.slice(0, firstOverlay), + overlays: firstOverlay < 0 ? [] : routes.slice(firstOverlay), + }; +} diff --git a/apps/mobile/src/features/pull-requests/PullRequestToolbar.android.tsx b/apps/mobile/src/features/pull-requests/PullRequestToolbar.android.tsx index fd0211a69d57..f2c3f205ad50 100644 --- a/apps/mobile/src/features/pull-requests/PullRequestToolbar.android.tsx +++ b/apps/mobile/src/features/pull-requests/PullRequestToolbar.android.tsx @@ -9,6 +9,7 @@ import { useHardwareKeyboardCommand } from "../keyboard/hardwareKeyboardCommands import { WorkspaceListToolbarRow } from "../workspace/WorkspaceListToolbarRow"; import { useWorkspaceTabs } from "../workspace/WorkspaceTabsContext"; import { usePullRequestFilterMenu } from "./PullRequestFilterMenuContext"; +import { openSettings } from "../settings/settings-navigation"; /** PR search shares the thread list's Android header row. */ export function PullRequestToolbar(props: { readonly onRequestVisibility?: () => void }) { @@ -71,12 +72,7 @@ export function PullRequestToolbar(props: { readonly onRequestVisibility?: () => onOpenSearch={openSearch} searchAccessibilityLabel="Search pull requests" titleAccessibilityLabel="T3 Code, Pull requests" - onOpenEnvironments={() => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironments" }, - }) - } + onOpenEnvironments={() => openSettings(navigation, "SettingsEnvironments")} filter={ filters ? ( { if (!hasCloudPublicConfig()) { - navigation.dispatch(StackActions.replace("SettingsContent")); + navigation.goBack(); } }, [navigation]); @@ -35,7 +35,7 @@ export function SettingsAuthRouteScreen() { function ConfiguredSettingsAuthRouteScreen() { const { isLoaded, isSignedIn } = useAuth({ treatPendingAsSignedOut: false }); const navigation = useNavigation(); - const handleHostBack = () => navigation.dispatch(StackActions.popTo("SettingsContent")); + const handleHostBack = () => navigation.goBack(); // Once signed in, stay on the profile view so signing out pops back instead of // flashing the sign-in form. const [hasBeenSignedIn, setHasBeenSignedIn] = useState(isSignedIn === true); @@ -43,7 +43,7 @@ function ConfiguredSettingsAuthRouteScreen() { useEffect(() => { if (hasBeenSignedIn && isLoaded && isSignedIn === false) { - navigation.dispatch(StackActions.popTo("SettingsContent")); + navigation.goBack(); } }, [hasBeenSignedIn, isLoaded, isSignedIn, navigation]); diff --git a/apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx index 44c104eedc25..06d5882c3b8e 100644 --- a/apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx @@ -202,13 +202,7 @@ function EnvironmentDetail({ environmentId }: { readonly environmentId: Environm environmentId={environmentId} connected={connected} onAddRoute={() => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { - screen: "SettingsEnvironmentNew", - params: { routeFor: environmentId }, - }, - }) + navigation.navigate("SettingsEnvironmentNew", { routeFor: environmentId }) } /> {outdated ? ( diff --git a/apps/mobile/src/features/settings/SettingsEnvironmentsRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsEnvironmentsRouteScreen.tsx index 4a23fdf98a3a..2f106cb29b30 100644 --- a/apps/mobile/src/features/settings/SettingsEnvironmentsRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsEnvironmentsRouteScreen.tsx @@ -65,10 +65,7 @@ export function SettingsEnvironmentsRouteScreen() { } const openEnvironment = (environmentId: EnvironmentId) => { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironmentDetail", params: { environmentId } }, - }); + navigation.navigate("SettingsEnvironmentDetail", { environmentId }); }; const handleUpdateEnvironment = ( environmentId: EnvironmentId, @@ -127,11 +124,7 @@ export function SettingsEnvironmentsRouteScreen() { accessibilityLabel: "Add environment", icon: "plus", tintColor: headerIconColor, - onPress: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironmentNew" }, - }), + onPress: () => navigation.navigate("SettingsEnvironmentNew"), }, ]} > diff --git a/apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx index fa48dbcd0a9d..1b9ee6f84cfc 100644 --- a/apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx @@ -209,7 +209,7 @@ function ConfiguredSettingsNotificationsRouteScreen() { { text: "Cancel", style: "cancel" }, { text: "Continue", - onPress: () => navigation.navigate("SettingsSheet", { screen: "SettingsAuth" }), + onPress: () => navigation.navigate("SettingsAuth"), }, ], ); diff --git a/apps/mobile/src/features/settings/SettingsOpenSourceLicensesRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsOpenSourceLicensesRouteScreen.tsx index 251e62565d84..eba94cdf3bd6 100644 --- a/apps/mobile/src/features/settings/SettingsOpenSourceLicensesRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsOpenSourceLicensesRouteScreen.tsx @@ -69,12 +69,8 @@ export function SettingsOpenSourceLicensesRouteScreen() { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { - screen: "SettingsOpenSourceLicense", - params: { entryKey: thirdPartyLicenseEntryKey(item) }, - }, + navigation.navigate("SettingsOpenSourceLicense", { + entryKey: thirdPartyLicenseEntryKey(item), }) } /> diff --git a/apps/mobile/src/features/settings/SettingsProjectOverviewRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsProjectOverviewRouteScreen.tsx index 7d5ae81eb8cc..6d8bb10d9072 100644 --- a/apps/mobile/src/features/settings/SettingsProjectOverviewRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsProjectOverviewRouteScreen.tsx @@ -39,6 +39,9 @@ import { SettingsEnvironmentFilterHeader, } from "./components/SettingsEnvironmentFilterHeader"; import { useSettingsEnvironmentFilter, type SettingsTarget } from "./settings-environment-filter"; +import { leaveSettingsPage } from "./settings-navigation"; +import { workspaceHasColumns } from "../workspace/workspace-selection-store"; +import { DEFAULT_SETTINGS_PAGE } from "../workspace/workspace-tab-navigation"; export function SettingsProjectOverviewRouteScreen() { const insets = useSafeAreaInsets(); @@ -63,7 +66,8 @@ export function SettingsProjectOverviewRouteScreen() { // The filter can move to another project while a removal is still running. const finishProjectRemoval = (projectKey: string | null) => { if (latestProjectKey.current !== projectKey) return; - if (navigation.isFocused()) navigation.goBack(); + if (navigation.isFocused()) + leaveSettingsPage(navigation, workspaceHasColumns(), DEFAULT_SETTINGS_PAGE); // Otherwise the filter keeps pointing at the removed project as an unavailable one. selectProject(null); }; diff --git a/apps/mobile/src/features/settings/SettingsRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsRouteScreen.tsx index cbcc949f7f93..b39e1cdde210 100644 --- a/apps/mobile/src/features/settings/SettingsRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsRouteScreen.tsx @@ -14,7 +14,8 @@ import { ScreenScrollViewBottomInset, } from "../../components/ui/ScreenScrollView"; import { useAuth, useUser } from "@clerk/expo"; -import { useNavigation } from "@react-navigation/native"; +import { useNavigation, useNavigationState } from "@react-navigation/native"; +import { use, useMemo } from "react"; import { Platform, View } from "react-native"; import { useWorkspaceSurface } from "../workspace/useWorkspaceSurface"; import { useDeviceType } from "../../native/native-layout-metrics"; @@ -26,18 +27,27 @@ import { hasCloudPublicConfig } from "../cloud/publicConfig"; import { useAdaptiveWorkspaceLayout } from "../layout/AdaptiveWorkspaceLayout"; import { useSavedRemoteConnections } from "../../state/use-remote-environment-registry"; import { SettingsRow } from "./components/SettingsRow"; -import { SettingsSection } from "./components/SettingsSection"; +import { SettingsSection, SettingsSidebarContext } from "./components/SettingsSection"; import { SettingsScreen } from "./components/SettingsScreen"; import { AndroidSettingsEnvironmentFilter, SettingsEnvironmentFilterHeader, } from "./components/SettingsEnvironmentFilterHeader"; import { useSettingsEnvironmentFilter } from "./settings-environment-filter"; +import { NativePrimaryColumnContext } from "../../native/v5-workspace-context"; export function SettingsRouteScreen() { const surface = useWorkspaceSurface(); const deviceType = useDeviceType(); const compactTabs = useCompactWorkspaceTabs(); + const { layout } = useAdaptiveWorkspaceLayout(); + const inSidebar = use(NativePrimaryColumnContext) !== null && layout.usesSplitView; + // The page open beside the list: the route right above the Settings tab's route. + const selected = useNavigationState((state) => { + const list = state.routes.findIndex((route) => route.name === "Settings"); + return list < 0 ? null : (state.routes[list + 1]?.name ?? null); + }); + const sidebar = useMemo(() => (inSidebar ? { selected } : null), [inSidebar, selected]); const content = hasCloudPublicConfig() ? ( ) : ( @@ -45,22 +55,27 @@ export function SettingsRouteScreen() { ); return ( - - - - {Platform.OS === "android" ? ( - }> - {content} - - ) : ( - content - )} - - + + + + + {Platform.OS === "android" ? ( + }> + {content} + + ) : ( + content + )} + + + ); } function ConfiguredSettingsRouteScreen() { + // UIKit's scroll-edge material takes the scroll view's own color; like the chat list, match + // the sidebar's surface so the bar doesn't darken over content at rest. + const listSurface = use(NativePrimaryColumnContext) ? "bg-drawer" : "bg-screen"; const insets = useSafeAreaInsets(); const navigation = useNavigation(); const { isLoaded, isSignedIn } = useAuth({ treatPendingAsSignedOut: false }); @@ -77,7 +92,7 @@ function ConfiguredSettingsRouteScreen() { @@ -88,7 +103,7 @@ function ConfiguredSettingsRouteScreen() { label="T3 Account" value={accountLabel} disabled={!isLoaded} - onPress={() => navigation.navigate("SettingsSheet", { screen: "SettingsAuth" })} + onPress={() => navigation.navigate("SettingsAuth")} /> - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { - screen: "SettingsEnvironmentDetail", - params: { environmentId: target.environmentId }, - }, + navigation.navigate("SettingsEnvironmentDetail", { + environmentId: target.environmentId, }) } /> diff --git a/apps/mobile/src/features/settings/components/SettingsRow.tsx b/apps/mobile/src/features/settings/components/SettingsRow.tsx index 24b030ea4a29..76894659ec99 100644 --- a/apps/mobile/src/features/settings/components/SettingsRow.tsx +++ b/apps/mobile/src/features/settings/components/SettingsRow.tsx @@ -1,9 +1,14 @@ -import { useNavigation } from "@react-navigation/native"; -import type { ComponentProps } from "react"; +import { useNavigation, useRoute } from "@react-navigation/native"; +import { use, type ComponentProps } from "react"; import { Platform } from "react-native"; import { ListRow } from "../../../components/ui/ListRow"; -import type { SettingsLegalDocumentTarget, SettingsSheetTarget } from "./settings-sheet-targets"; +import { ListRowLayout } from "../../../components/ui/ListRowLayout"; +import { RowPressable } from "../../../components/ui/RowPressable"; +import { cn } from "../../../lib/cn"; +import type { SettingsLegalDocumentTarget, SettingsPageTarget } from "./settings-page-targets"; +import { SettingsSidebarContext } from "./SettingsSection"; +import { openSettings } from "../settings-navigation"; export function SettingsRow(props: { readonly disabled?: boolean; @@ -11,33 +16,48 @@ export function SettingsRow(props: { readonly label: string; readonly value?: string; readonly valuePosition?: "below" | "trailing"; - readonly target?: SettingsSheetTarget; + readonly target?: SettingsPageTarget; readonly fullScreenTarget?: SettingsLegalDocumentTarget; readonly onPress?: () => void; }) { const navigation = useNavigation(); + const sidebar = use(SettingsSidebarContext); + // The Settings list opens pages in place of the detail column; a page's own rows push below. + const inList = ["Home", "Settings"].includes(useRoute().name); const valueBelow = props.valuePosition === "below" || (props.valuePosition === undefined && Platform.OS === "android"); - return ( - { - if (props.target) { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: props.target }, - }); - } else if (props.fullScreenTarget) { - navigation.navigate(props.fullScreenTarget); - } else { - props.onPress?.(); - } - }} - /> - ); + const content = { + icon: props.icon, + label: props.label, + description: valueBelow ? props.value : undefined, + detail: valueBelow ? undefined : props.value, + disabled: props.disabled, + }; + const onPress = () => { + if (props.target) { + if (inList) openSettings(navigation, props.target); + else navigation.navigate(props.target); + } else if (props.fullScreenTarget) { + navigation.navigate(props.fullScreenTarget); + } else { + props.onPress?.(); + } + }; + if (sidebar) { + const selected = props.target !== undefined && props.target === sidebar.selected; + return ( + + + + ); + } + return ; } diff --git a/apps/mobile/src/features/settings/components/SettingsScreen.tsx b/apps/mobile/src/features/settings/components/SettingsScreen.tsx index db596347e771..e05d71239ac6 100644 --- a/apps/mobile/src/features/settings/components/SettingsScreen.tsx +++ b/apps/mobile/src/features/settings/components/SettingsScreen.tsx @@ -1,4 +1,4 @@ -import { useNavigation, useNavigationState, useRoute } from "@react-navigation/native"; +import { useNavigation, useRoute } from "@react-navigation/native"; import type { ReactNode } from "react"; import { Platform, View } from "react-native"; @@ -22,7 +22,6 @@ export function SettingsScreen( ) { const navigation = useNavigation(); const route = useRoute(); - const index = useNavigationState((state) => state.index); const workspace = useWorkspaceTabs(); const surface = useWorkspaceSurface(); const deviceType = useDeviceType(); @@ -31,7 +30,7 @@ export function SettingsScreen( // Android opens Settings as a workspace tab; its root page has nothing to go back to. const workspaceRoot = props.workspaceRoot || - (Platform.OS === "android" && workspace !== null && index === 0 && route.name === "Settings"); + (Platform.OS === "android" && workspace !== null && route.name === "Settings"); return ( ( + null, +); + +export function SettingsSection(props: ComponentProps) { + if (!use(SettingsSidebarContext)) return ; + return ( + + {props.title ? ( + + + {props.titleIcon} + + {props.title} + + + {props.trailing} + + ) : null} + {props.children} + {props.footer ? ( + + {props.footer} + + ) : null} + + ); +} diff --git a/apps/mobile/src/features/settings/components/settings-page-targets.ts b/apps/mobile/src/features/settings/components/settings-page-targets.ts new file mode 100644 index 000000000000..21267a087143 --- /dev/null +++ b/apps/mobile/src/features/settings/components/settings-page-targets.ts @@ -0,0 +1,30 @@ +/** Settings pages a Settings row opens. */ +export const SETTINGS_PAGE_TARGETS = [ + "SettingsEnvironments", + "SettingsNotifications", + "SettingsThreads", + "SettingsAbout", + "SettingsArchive", + "SettingsAppearance", + "SettingsNavigation", + "SettingsOrganization", + "SettingsProjectOverview", + "SettingsEnvironmentNewThreads", + "SettingsEnvironmentSourceControl", + "SettingsEnvironmentAgentBehavior", + "SettingsEnvironmentMaintenance", + "SettingsProviderAccounts", + "SettingsKeyboard", + "SettingsMicrophone", + "SettingsFollowUp", + "SettingsScheduledTasks", + "SettingsProjectGrouping", + "SettingsClientStorage", + "SettingsDiagnostics", + "SettingsOpenSourceLicenses", + "SettingsUsage", +] as const; + +export type SettingsPageTarget = (typeof SETTINGS_PAGE_TARGETS)[number]; + +export type SettingsLegalDocumentTarget = "SettingsLegal"; diff --git a/apps/mobile/src/features/settings/components/settings-sheet-targets.ts b/apps/mobile/src/features/settings/components/settings-sheet-targets.ts deleted file mode 100644 index 22fa5b4b98fd..000000000000 --- a/apps/mobile/src/features/settings/components/settings-sheet-targets.ts +++ /dev/null @@ -1,26 +0,0 @@ -export type SettingsSheetTarget = - | "SettingsEnvironments" - | "SettingsNotifications" - | "SettingsThreads" - | "SettingsAbout" - | "SettingsArchive" - | "SettingsAppearance" - | "SettingsNavigation" - | "SettingsOrganization" - | "SettingsProjectOverview" - | "SettingsEnvironmentNewThreads" - | "SettingsEnvironmentSourceControl" - | "SettingsEnvironmentAgentBehavior" - | "SettingsEnvironmentMaintenance" - | "SettingsProviderAccounts" - | "SettingsKeyboard" - | "SettingsMicrophone" - | "SettingsFollowUp" - | "SettingsScheduledTasks" - | "SettingsProjectGrouping" - | "SettingsClientStorage" - | "SettingsDiagnostics" - | "SettingsOpenSourceLicenses" - | "SettingsUsage"; - -export type SettingsLegalDocumentTarget = "SettingsLegal"; diff --git a/apps/mobile/src/features/settings/scheduled-task-editor.tsx b/apps/mobile/src/features/settings/scheduled-task-editor.tsx index 265f42e0059d..b4fd6b944d57 100644 --- a/apps/mobile/src/features/settings/scheduled-task-editor.tsx +++ b/apps/mobile/src/features/settings/scheduled-task-editor.tsx @@ -1,14 +1,6 @@ import { useAtomValue } from "@effect/atom-react"; import type { EnvironmentId } from "@t3tools/contracts"; -import { - createContext, - use, - useMemo, - useCallback, - type Dispatch, - type ReactNode, - type SetStateAction, -} from "react"; +import { useMemo, useCallback, type Dispatch, type SetStateAction } from "react"; import { useProjects, useServerConfigs } from "../../state/entities"; import { @@ -28,19 +20,8 @@ import { type ScheduledTaskEditor, } from "./scheduled-task-editor-state"; -const ScheduledTaskEditorContext = createContext<{ - readonly editor: ScheduledTaskEditor | null; - readonly voiceOwnerKey: string; - readonly readEditor: () => ScheduledTaskEditor | null; - readonly setEditor: Dispatch>; - readonly startEditor: (editor: ScheduledTaskEditor | null) => void; - readonly hasChanges: boolean; - readonly resetEditor: () => void; - readonly draftForEnvironment: (environmentId: EnvironmentId) => ScheduledTaskDraft; -} | null>(null); - -/** Keeps the form draft alive while its native picker routes are on top. */ -export function ScheduledTaskEditorProvider({ children }: { readonly children: ReactNode }) { +/** The form draft lives in an atom, so it survives while its native picker routes are on top. */ +export function useScheduledTaskEditor() { const { selectedTargets, selectedProjectKey, projectGroups } = useSettingsEnvironmentFilter(); const selectedGroup = projectGroups.find((group) => group.key === selectedProjectKey); const configs = useServerConfigs(); @@ -102,7 +83,7 @@ export function ScheduledTaskEditorProvider({ children }: { readonly children: R () => readScheduledTaskEditor(voiceOwnerKey, defaultEditor), [defaultEditor, voiceOwnerKey], ); - const value = useMemo( + return useMemo( () => ({ editor, voiceOwnerKey, @@ -124,11 +105,4 @@ export function ScheduledTaskEditorProvider({ children }: { readonly children: R draftForEnvironment, ], ); - return {children}; -} - -export function useScheduledTaskEditor() { - const context = use(ScheduledTaskEditorContext); - if (!context) throw new Error("Scheduled task editor provider is missing."); - return context; } diff --git a/apps/mobile/src/features/settings/settings-environment-filter.tsx b/apps/mobile/src/features/settings/settings-environment-filter.tsx index e82991262d10..8564c950da3e 100644 --- a/apps/mobile/src/features/settings/settings-environment-filter.tsx +++ b/apps/mobile/src/features/settings/settings-environment-filter.tsx @@ -1,6 +1,14 @@ import type { EnvironmentId } from "@t3tools/contracts"; import { buildProjectGroups } from "@t3tools/client-runtime/state/project-grouping"; -import { createContext, useContext, useMemo, useState, type ReactNode } from "react"; +import { + createContext, + useContext, + useMemo, + useState, + type Dispatch, + type ReactNode, + type SetStateAction, +} from "react"; import { useEnvironments, type EnvironmentPresentation } from "../../state/environments"; import { useProjects } from "../../state/entities"; @@ -11,41 +19,88 @@ export type SettingsTarget = EnvironmentPresentation & { readonly serverConfig: NonNullable; }; +// Several mounted Settings components read the scope at once (the list, its header, a page and +// its editor), so share the derived lists across them for the same inputs. +const targetsCache = new WeakMap(); +const groupsCache = new WeakMap>>(); + function connectedSettingsTargets(environments: readonly EnvironmentPresentation[]) { - return environments.filter( - (entry): entry is SettingsTarget => - entry.connection.phase === "connected" && entry.serverConfig !== null, - ); + let targets = targetsCache.get(environments); + if (!targets) { + targets = environments.filter( + (entry): entry is SettingsTarget => + entry.connection.phase === "connected" && entry.serverConfig !== null, + ); + targetsCache.set(environments, targets); + } + return targets; +} + +function settingsProjectGroups( + projects: Parameters[0]["projects"], + groupingMode: Parameters[0]["settings"]["sidebarProjectGroupingMode"], +) { + let byMode = groupsCache.get(projects); + if (!byMode) groupsCache.set(projects, (byMode = new Map())); + let groups = byMode.get(groupingMode); + if (!groups) { + groups = buildProjectGroups({ + projects, + settings: { sidebarProjectGroupingMode: groupingMode, sidebarProjectGroupingOverrides: {} }, + }); + byMode.set(groupingMode, groups); + } + return groups; } -const SettingsEnvironmentFilterContext = createContext<{ - readonly availableTargets: readonly SettingsTarget[]; - readonly selectedTargets: readonly SettingsTarget[]; +interface SettingsEnvironmentSelection { readonly selectedIds: ReadonlySet | null; - readonly projectGroups: ReturnType; - readonly selectableProjectGroups: ReturnType; readonly selectedProjectKey: string | null; - readonly selectProject: (projectKey: string | null) => void; - readonly selectAll: () => void; - readonly toggleEnvironment: (environmentId: EnvironmentId) => void; -} | null>(null); + readonly setSelectedIds: Dispatch | null>>; + readonly setSelectedProjectKey: Dispatch>; +} + +const SettingsEnvironmentSelectionContext = createContext( + null, +); -export function SettingsEnvironmentFilterProvider(props: { readonly children: ReactNode }) { +/** + * Holds the Settings scope selection across Settings pages, which are separate root routes. + * It stays mounted for the whole app, so it keeps only the selection; the environment and + * project data is derived in the hook, by the Settings pages that are mounted. The selection + * resets when Settings closes. + */ +export function SettingsEnvironmentFilterProvider(props: { + readonly open: boolean; + readonly children: ReactNode; +}) { + const [selectedIds, setSelectedIds] = useState | null>(null); + const [selectedProjectKey, setSelectedProjectKey] = useState(null); + if (!props.open && (selectedIds !== null || selectedProjectKey !== null)) { + setSelectedIds(null); + setSelectedProjectKey(null); + } + const value = useMemo( + () => ({ selectedIds, selectedProjectKey, setSelectedIds, setSelectedProjectKey }), + [selectedIds, selectedProjectKey], + ); + return ( + + {props.children} + + ); +} + +export function useSettingsEnvironmentFilter() { + const selection = useContext(SettingsEnvironmentSelectionContext); + if (selection === null) throw new Error("Settings environment filter provider is missing."); + const { selectedIds, selectedProjectKey, setSelectedIds, setSelectedProjectKey } = selection; const { environments } = useEnvironments(); const projects = useProjects(); const groupingSettings = useMobileProjectGroupingSettings(); const groupingMode = groupingSettings.sidebarProjectGroupingMode; - const [selectedIds, setSelectedIds] = useState | null>(null); - const [selectedProjectKey, setSelectedProjectKey] = useState(null); - const projectGroups = useMemo( - () => - buildProjectGroups({ - projects, - settings: { sidebarProjectGroupingMode: groupingMode, sidebarProjectGroupingOverrides: {} }, - }), - [projects, groupingMode], - ); - const availableTargets = useMemo(() => connectedSettingsTargets(environments), [environments]); + const projectGroups = settingsProjectGroups(projects, groupingMode); + const availableTargets = connectedSettingsTargets(environments); const selectedTargets = useMemo( () => availableTargets.filter( @@ -62,7 +117,7 @@ export function SettingsEnvironmentFilterProvider(props: { readonly children: Re ), [projectGroups, selectedTargets], ); - const value = useMemo( + return useMemo( () => ({ availableTargets, selectedTargets, @@ -84,17 +139,8 @@ export function SettingsEnvironmentFilterProvider(props: { readonly children: Re projectGroups, selectableProjectGroups, selectedProjectKey, + setSelectedIds, + setSelectedProjectKey, ], ); - return ( - - {props.children} - - ); -} - -export function useSettingsEnvironmentFilter() { - const filter = useContext(SettingsEnvironmentFilterContext); - if (filter === null) throw new Error("Settings environment filter provider is missing."); - return filter; } diff --git a/apps/mobile/src/features/settings/settings-navigation.ts b/apps/mobile/src/features/settings/settings-navigation.ts new file mode 100644 index 000000000000..b97bc948c0a2 --- /dev/null +++ b/apps/mobile/src/features/settings/settings-navigation.ts @@ -0,0 +1,119 @@ +import type { NavigationState, PartialState } from "@react-navigation/native"; + +import { + dispatchRootStackReset, + resetRootStack, + rootStackState, + type RootStackNavigation, +} from "../../lib/root-stack-reset"; + +type RootParams = ReactNavigation.RootParamList; + +/** Settings routes that open as modals over whatever is on screen, not as Settings pages. */ +const SETTINGS_MODAL_ROUTES = new Set(["SettingsLegal", "SettingsAuth", "SettingsWaitlist"]); + +/** Root routes that make up the Settings tab: its list and the pages it opens. */ +export type SettingsRouteName = Exclude< + Extract, + "SettingsLegal" | "SettingsAuth" | "SettingsWaitlist" +>; + +/** A page in the Settings tab's detail column. */ +export type SettingsPageName = Exclude; + +export function isSettingsRoute(name: string): boolean { + return name.startsWith("Settings") && !SETTINGS_MODAL_ROUTES.has(name); +} + +/** + * Settings is open while its `Settings` route is under the topmost workspace page and that + * page is a Settings page. A Settings page pushed without it, such as a usage account opened + * from the Usage tab, stays a detail of the current tab. + */ +export function settingsOpenIn(workspaceRoutes: readonly { readonly name: string }[]): boolean { + return ( + workspaceRoutes.some((route) => route.name === "Settings") && + isSettingsRoute(workspaceRoutes.at(-1)?.name ?? "") + ); +} + +/** + * A `settings/...` link names only its page, so put the Settings tab's route under it. A bare + * `settings` link opens `page` beside the list when the window has columns. + */ +export function restoreSettingsLinkState( + state: PartialState | undefined, + page: SettingsPageName | undefined, +) { + if (!state) return state; + const routes = [...state.routes]; + const list = routes.findIndex((route) => route.name === "Settings"); + const first = routes.findIndex((route) => isSettingsRoute(route.name)); + if (first < 0) return state; + if (list < 0) routes.splice(first, 0, { name: "Settings" }); + const top = routes.at(-1); + if (page && top?.name === "Settings") routes.push({ name: page }); + return routes.length === state.routes.length + ? state + : { ...state, index: routes.length - 1, routes }; +} + +type SettingsPageArgs = undefined extends RootParams[Name] + ? [params?: RootParams[Name]] + : [params: RootParams[Name]]; + +type RouteLike = { readonly name: string; readonly key?: string; readonly params?: object }; + +/** + * Settings pages sit on the root stack above Home, under a `Settings` route that keeps the + * Settings list as the workspace's primary content. Opening a page replaces whatever was above + * Home, so the tab always starts from its list and Back returns there. Routes already on screen + * keep their keys, so reopening the open page doesn't rebuild it. + */ +export function settingsNavigationState( + state: State, + page: SettingsPageName | undefined, + params?: object, + key?: string, +) { + const home = state.routes.find((route) => route.name === "Home") ?? { name: "Home" }; + const list = state.routes.find((route) => route.name === "Settings") ?? { name: "Settings" }; + const current = page + ? state.routes.find( + (route) => route.name === page && JSON.stringify(route.params) === JSON.stringify(params), + ) + : undefined; + const routes = [ + home, + list, + ...(page ? [current ?? (key ? { key, name: page, params } : { name: page, params })] : []), + ]; + return { ...state, index: routes.length - 1, routes }; +} + +/** Opens one Settings page in the Settings tab, from anywhere outside it. */ +export function openSettings( + navigation: RootStackNavigation, + page: Name, + ...[params]: SettingsPageArgs +) { + resetRootStack(navigation, (state) => settingsNavigationState(state, page, params)); +} + +/** + * Closes a Settings page that finished its job. The first page beside the list is replaced with + * `fallback` when the window has columns, since going back would leave the detail column empty. + */ +export function leaveSettingsPage( + navigation: RootStackNavigation & { readonly goBack: () => void }, + columns: boolean, + fallback: SettingsPageName, +) { + const state = rootStackState(navigation); + const below = state?.routes[state.index - 1]; + if (state && columns && below?.name === "Settings") { + dispatchRootStackReset(navigation, state, settingsNavigationState(state, fallback)); + } else { + navigation.goBack(); + } +} diff --git a/apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx b/apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx index 6e5d42c47d92..761fa805ddbe 100644 --- a/apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx +++ b/apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx @@ -33,6 +33,7 @@ import { subscribeToShowcaseRenderSignal, } from "./showcaseRenderSignal"; import { stageShowcaseAgentActivity } from "./stageShowcaseAgentActivity"; +import { openSettings } from "../settings/settings-navigation"; const SHOWCASE_ENABLED = process.env.EXPO_PUBLIC_SHOWCASE === "1"; const SHOWCASE_THREAD_ID = "remote-command-center"; @@ -243,12 +244,7 @@ function EnabledShowcaseCaptureCoordinator(props: { readonly pathname: string }) return; } if (requestedScene === "environments") { - navigation.dispatch( - CommonActions.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironments" }, - }), - ); + openSettings(navigation, "SettingsEnvironments"); } else if (requestedScene === "terminal") { navigation.dispatch( CommonActions.navigate("ThreadTerminal", { ...params, terminalId: "term-1" }), diff --git a/apps/mobile/src/features/threads/ThreadFeed.tsx b/apps/mobile/src/features/threads/ThreadFeed.tsx index f24ed10e6ca0..6f0619ab37ae 100644 --- a/apps/mobile/src/features/threads/ThreadFeed.tsx +++ b/apps/mobile/src/features/threads/ThreadFeed.tsx @@ -284,6 +284,7 @@ import { ThreadMarkdownImageUnavailable, ThreadMarkdownImageView, } from "./ThreadMarkdownImage"; +import { openSettings } from "../settings/settings-navigation"; const WIDE_MARKDOWN_BLOCK_OPTIONS = { // Native iOS blockquotes and adjacent selectable text are separate layout @@ -1173,12 +1174,7 @@ function ThreadAutomationMessageRow(props: { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsScheduledTasks" }, - }) - } + onPress={() => openSettings(navigation, "SettingsScheduledTasks")} > Open automation diff --git a/apps/mobile/src/features/threads/ThreadRouteScreen.tsx b/apps/mobile/src/features/threads/ThreadRouteScreen.tsx index 256a8b13b73d..d47e34551817 100644 --- a/apps/mobile/src/features/threads/ThreadRouteScreen.tsx +++ b/apps/mobile/src/features/threads/ThreadRouteScreen.tsx @@ -97,6 +97,7 @@ import { useAndroidWorkspaceBack, useWorkspaceBackNavigation, } from "../workspace/useAndroidWorkspaceNavigation"; +import { openSettings } from "../settings/settings-navigation"; interface ThreadInspectorSelection { readonly routeThreadIdentity: string | null; @@ -256,10 +257,7 @@ function LiveThreadRouteController(props: ThreadRouteScreenProps) { onReconnectEnvironment(environmentId); return; } - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironments" }, - }); + openSettings(navigation, "SettingsEnvironments"); }} /> ); diff --git a/apps/mobile/src/features/usage/UsageLimitsPooled.tsx b/apps/mobile/src/features/usage/UsageLimitsPooled.tsx index 010c902364c4..fcd927b8d326 100644 --- a/apps/mobile/src/features/usage/UsageLimitsPooled.tsx +++ b/apps/mobile/src/features/usage/UsageLimitsPooled.tsx @@ -151,18 +151,12 @@ function PoolWindowCard({ const navigation = useNavigation(); const nextRefill = pool.resets.find((reset) => reset.restoresPercent > 0); const openAccount = (account: LimitAccount) => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { - screen: "SettingsUsageAccount", - params: { - accountKey: account.key, - windowId: pool.id, - windowKind: pool.kind, - environmentIds, - now, - }, - }, + navigation.navigate("SettingsUsageAccount", { + accountKey: account.key, + windowId: pool.id, + windowKind: pool.kind, + environmentIds, + now, }); return ( diff --git a/apps/mobile/src/features/workspace/AndroidWorkspaceSettings.tsx b/apps/mobile/src/features/workspace/AndroidWorkspaceSettings.tsx deleted file mode 100644 index 9e616e2b8c03..000000000000 --- a/apps/mobile/src/features/workspace/AndroidWorkspaceSettings.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import type { ReactNode } from "react"; -import { Platform, View } from "react-native"; -import { SafeAreaInsetsContext, useSafeAreaInsets } from "react-native-safe-area-context"; -import { useAdaptiveWorkspaceLayout } from "../layout/AdaptiveWorkspaceLayout"; -import { AndroidWorkspaceNavigation } from "./AndroidWorkspaceNavigation"; - -/** Settings keeps its existing stack inside the full workspace, above compact navigation. */ -export function AndroidWorkspaceSettings(props: { readonly children: ReactNode }) { - const { layout, startNewTask } = useAdaptiveWorkspaceLayout(); - const insets = useSafeAreaInsets(); - if (Platform.OS !== "android") return props.children; - return ( - - - {props.children} - - {layout.usesSplitView ? null : } - - ); -} diff --git a/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx b/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx index 7bc9ebacea85..344e787d0447 100644 --- a/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx +++ b/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx @@ -1,17 +1,11 @@ -import { useNavigation } from "@react-navigation/native"; import { WORKSPACE_TAB_LABELS, NAVIGATION_TAB_ICONS, useEnabledNavigationTabs, } from "./navigation-tabs"; -import { useCallback, useMemo, useState, type ReactNode } from "react"; -import { Keyboard, View, useWindowDimensions, type NativeSyntheticEvent } from "react-native"; -import { - Tabs, - type TabSelectedEvent, - type TabSelectionPreventedEvent, - type TabSelectionRejectedEvent, -} from "react-native-screens"; +import { useCallback, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from "react"; +import { View, useWindowDimensions, type NativeSyntheticEvent } from "react-native"; +import { Tabs, type TabSelectedEvent, type TabSelectionRejectedEvent } from "react-native-screens"; import { WorkspaceTabsContext, useWorkspaceTabs } from "./WorkspaceTabsContext"; import { @@ -20,12 +14,16 @@ import { workspaceUsesColumns, type WorkspaceTab, } from "./workspace-tabs-state"; -import { NativeWorkspaceTabActivityContext } from "../../native/v5-workspace-context"; +import { + NativeWorkspaceTabActivityContext, + WorkspaceSlotOptionsContext, +} from "../../native/v5-workspace-context"; import { useCompactWorkspaceTabs, useSystemWorkspaceTabBar } from "./useSystemWorkspaceTabBar"; import { useControlTheme } from "../../components/ui/useControlTheme"; import { useDeviceType } from "../../native/native-layout-metrics"; import { WorkspaceSidebarTabs } from "./WorkspaceSidebarTabs"; import { useAdaptiveWorkspaceLayout } from "../layout/AdaptiveWorkspaceLayout"; +import { useSelectWorkspaceTab } from "./useSelectWorkspaceTab"; const PULL_REQUEST_ICON = require("../../../assets/icons/pull-request.png"); @@ -36,8 +34,12 @@ function RetainedWorkspaceTab(props: { readonly children: ReactNode; }) { const workspace = useWorkspaceTabs()!; - const { isTabActive } = workspace; - const isActive = useCallback(() => isTabActive(props.tab), [isTabActive, props.tab]); + // Whether this slot is the visible one, read by cleanups after the switch has committed. + const activeRef = useRef(props.active); + useLayoutEffect(() => { + activeRef.current = props.active; + }, [props.active]); + const isActive = useCallback(() => activeRef.current, []); const activity = useMemo( () => ({ active: props.active, @@ -45,6 +47,19 @@ function RetainedWorkspaceTab(props: { }), [props.active, isActive], ); + const [optionsByRoute, setOptionsByRoute] = useState>(new Map()); + // Stable, so writers and the cleanups that depend on them don't re-run on every write. + const setRouteOptions = useCallback( + (routeKey: string, options: object) => + setOptionsByRoute((current) => + new Map(current).set(routeKey, { ...current.get(routeKey), ...options }), + ), + [], + ); + const slotOptions = useMemo( + () => ({ byRoute: optionsByRoute, set: setRouteOptions }), + [optionsByRoute, setRouteOptions], + ); const [content, setContent] = useState( props.active ? { workspace, children: props.children } : null, ); @@ -52,7 +67,9 @@ function RetainedWorkspaceTab(props: { setContent({ workspace, children: props.children }); return content ? ( - {content.children} + + {content.children} + ) : null; } @@ -60,13 +77,12 @@ function RetainedWorkspaceTab(props: { export function WorkspaceNativeTabs(props: { readonly children: ReactNode; readonly hidden: boolean; - readonly onSelect: () => void; }) { const workspace = useWorkspaceTabs()!; const order = useEnabledNavigationTabs(); const primaryTabs = order.slice(0, 4); const overflow = order[4]; - const navigation = useNavigation(); + const selectTab = useSelectWorkspaceTab(); const [provenance, setProvenance] = useState(0); const systemTabBar = useSystemWorkspaceTabBar(); const deviceType = useDeviceType(); @@ -95,16 +111,6 @@ export function WorkspaceNativeTabs(props: { tabBarMinimizeBehavior: "never", tabBarTintColor: colors["--color-primary"], }} - onTabSelectionPrevented={({ - nativeEvent, - }: NativeSyntheticEvent) => { - if (nativeEvent.preventedScreenKey === "settings") { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }); - } - }} onTabSelectionRejected={({ nativeEvent, }: NativeSyntheticEvent) => @@ -114,18 +120,7 @@ export function WorkspaceNativeTabs(props: { setProvenance(nativeEvent.provenance); if (nativeEvent.actionOrigin === "programmatic-js") return; const tab = workspaceTabForNativeSlot(primaryTabs, nativeEvent.selectedScreenKey); - // UIKit sends reselects here even when preventNativeSelection is enabled. - if (tab === "settings") { - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }); - return; - } - if (!tab) return; - Keyboard.dismiss(); - props.onSelect(); - workspace.dispatch({ type: "select", tab }); + if (tab) selectTab(tab); }} > {NATIVE_WORKSPACE_TAB_SLOTS.map((slot, index) => { @@ -139,7 +134,6 @@ export function WorkspaceNativeTabs(props: { screenKey={slot} title="" tabBarItemAccessibilityLabel={settings ? "Settings" : WORKSPACE_TAB_LABELS[tab]} - preventNativeSelection={settings} ios={{ icon: settings ? { type: "sfSymbol", name: "gearshape" } @@ -166,7 +160,7 @@ export function WorkspaceNativeTabs(props: { {(deviceType === "pad" || compactTabs || (layout.primarySidebarOverlaysContent && - (workspace.settingsOpen || !workspaceUsesColumns(selectedTab)))) && + !workspaceUsesColumns(selectedTab, workspace.settingsOpen))) && !props.hidden ? ( - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsNavigation", initial: false }, - }) - } + onAction={() => openSettings(navigation, "SettingsNavigation")} /> ); diff --git a/apps/mobile/src/features/workspace/WorkspaceRootScreen.tsx b/apps/mobile/src/features/workspace/WorkspaceRootScreen.tsx index 2ca3fc7cdf8c..69efd96411fa 100644 --- a/apps/mobile/src/features/workspace/WorkspaceRootScreen.tsx +++ b/apps/mobile/src/features/workspace/WorkspaceRootScreen.tsx @@ -1,6 +1,7 @@ import { WorkspaceNoTabs } from "./WorkspaceNoTabs"; import { WORKSPACE_TAB_LABELS, useEnabledNavigationTabs } from "./navigation-tabs"; import { WorkspaceExtraTab } from "./WorkspaceExtraTab"; +import { SettingsRouteScreen } from "../settings/SettingsRouteScreen"; import { WorkspaceSectionToolbar } from "./WorkspaceSectionToolbar"; import { useNavigation } from "@react-navigation/native"; import { use, useCallback, useMemo } from "react"; @@ -44,6 +45,8 @@ import { useSidebarWorkspaceTabs, useSystemWorkspaceTabBar, } from "./useSystemWorkspaceTabBar"; +import { openSettings } from "../settings/settings-navigation"; +import { useSelectWorkspaceTab } from "./useSelectWorkspaceTab"; const TAB_TITLES = WORKSPACE_TAB_LABELS; @@ -70,6 +73,7 @@ function WorkspaceRootTitle(props: { function WorkspaceRootContent() { const navigation = useNavigation(); + const selectTab = useSelectWorkspaceTab(); const { width: windowWidth } = useWindowDimensions(); const { layout, startNewTask } = useAdaptiveWorkspaceLayout(); const primaryColumn = use(NativePrimaryColumnContext); @@ -97,17 +101,14 @@ function WorkspaceRootContent() { () => ( - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironments" }, - }) - } + onOpenEnvironments={() => openSettings(navigation, "SettingsEnvironments")} /> ), [width, navigation], ); const tab = state.tabs[state.selectedTab]; + // Settings is a workspace tab too; its list takes the place of the selected tab's. + const settingsOpen = workspace.settingsOpen; const bottomClearance = layout.primarySidebarOverlaysContent && state.selectedTab === "usage" ? workspaceDockBottomClearance({ bottomInset: insets.bottom, keyboardHeight }) @@ -140,6 +141,7 @@ function WorkspaceRootContent() { {Platform.OS === "ios" ? ( [] } : {}), unstable_headerLeftItems: () => [], - headerTitle: state.selectedTab === "usage" ? undefined : renderHeaderTitle, + headerTitle: + settingsOpen || state.selectedTab === "usage" ? undefined : renderHeaderTitle, }} /> ) : ( @@ -181,11 +188,7 @@ function WorkspaceRootContent() { { accessibilityLabel: "Settings", icon: "gearshape", - onPress: () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }), + onPress: () => selectTab("settings"), }, ]} /> @@ -195,7 +198,12 @@ function WorkspaceRootContent() { sidebarPicker ? { ...insets, top: 0 } : compactTabs ? { ...insets, bottom: 0 } : insets } > - {enabled.length === 0 ? ( + {settingsOpen ? ( + <> + + + + ) : enabled.length === 0 ? ( ) : state.selectedTab === "threads" ? ( @@ -208,13 +216,13 @@ function WorkspaceRootContent() { {deviceType !== "pad" && deviceType !== "phone" && sidebarPicker ? ( ) : null} - {enabled.length === 0 ? null : state.selectedTab === "threads" || - state.selectedTab === "pullRequests" ? ( + {enabled.length === 0 && !settingsOpen ? null : !settingsOpen && + (state.selectedTab === "threads" || state.selectedTab === "pullRequests") ? ( ) : ( )} diff --git a/apps/mobile/src/features/workspace/WorkspaceSectionToolbar.tsx b/apps/mobile/src/features/workspace/WorkspaceSectionToolbar.tsx index cf105d8ad82c..cb9128ba0397 100644 --- a/apps/mobile/src/features/workspace/WorkspaceSectionToolbar.tsx +++ b/apps/mobile/src/features/workspace/WorkspaceSectionToolbar.tsx @@ -49,12 +49,7 @@ export function WorkspaceTabToolbarButtons() { accessibilityLabel="Settings" icon="gearshape" tintColor={selected === "settings" ? selectedTint : undefined} - onPress={() => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }) - } + onPress={() => selectTab("settings")} /> ); diff --git a/apps/mobile/src/features/workspace/WorkspaceSidebarTabs.ios.tsx b/apps/mobile/src/features/workspace/WorkspaceSidebarTabs.ios.tsx index 4b260b0cc462..a5e608dc4a48 100644 --- a/apps/mobile/src/features/workspace/WorkspaceSidebarTabs.ios.tsx +++ b/apps/mobile/src/features/workspace/WorkspaceSidebarTabs.ios.tsx @@ -51,11 +51,7 @@ export function WorkspaceSidebarTabs(props: { onCompose={() => props.onNewTask?.()} onSelectionChange={({ nativeEvent }) => { const tab = tabs.find((candidate) => candidate === nativeEvent.tab); - if (tab === "settings") - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "Settings" }, - }); + if (tab === "settings") selectTab("settings"); else if (tab) selectTab(tab); }} // Keep the host stable while UIKit updates the bars' intrinsic size and safe area together. diff --git a/apps/mobile/src/features/workspace/android-workspace-tabs.ts b/apps/mobile/src/features/workspace/android-workspace-tabs.ts index 999838f52dc3..30107666c8e7 100644 --- a/apps/mobile/src/features/workspace/android-workspace-tabs.ts +++ b/apps/mobile/src/features/workspace/android-workspace-tabs.ts @@ -1,41 +1,33 @@ import type { NavigationState } from "@react-navigation/native"; import { androidWorkspaceNavigationState } from "../../lib/android-workspace-navigation"; +import { + isSettingsRoute, + settingsNavigationState, + settingsOpenIn, +} from "../settings/settings-navigation"; import type { WorkspaceTab } from "./workspace-tabs-state"; /** Settings joins the two list tabs as a top-level Android destination. */ export type AndroidWorkspaceNavigationTab = WorkspaceTab | "settings"; -const WORKSPACE_ROUTES = new Set(["Home", "Thread", "PullRequest", "SettingsSheet"]); +const WORKSPACE_ROUTES = new Set(["Home", "Thread", "PullRequest"]); -/** - * The Settings tab reuses the settings navigator, reset over Home alone so stale chat and - * PR history is dropped while nested settings pages keep an ordinary Back. - */ +/** The Settings tab resets over Home alone so stale chat and PR history is dropped. */ export function androidWorkspaceTabNavigationState( state: NavigationState, tab: AndroidWorkspaceNavigationTab, ) { const home = androidWorkspaceNavigationState(state); - if (tab !== "settings") return home; - return { - ...home, - index: 1, - routes: [ - ...home.routes, - { - name: "SettingsSheet", - params: { screen: "SettingsContent", params: { screen: "Settings" } }, - }, - ], - }; + return tab === "settings" ? settingsNavigationState(home, undefined) : home; } -/** Settings stays selected while its navigator is the topmost workspace route. */ +/** Settings stays selected while one of its pages is the topmost workspace route. */ export function androidWorkspaceSettingsOpen(state: NavigationState): boolean { - const top = state.routes - .slice(0, state.index + 1) - .findLast((route) => WORKSPACE_ROUTES.has(route.name)); - return top?.name === "SettingsSheet"; + return settingsOpenIn( + state.routes + .slice(0, state.index + 1) + .filter((route) => WORKSPACE_ROUTES.has(route.name) || isSettingsRoute(route.name)), + ); } export function androidWorkspaceTabFromNavigationState( diff --git a/apps/mobile/src/features/workspace/useSelectWorkspaceTab.ts b/apps/mobile/src/features/workspace/useSelectWorkspaceTab.ts index 6c31cee8738a..1cd5d83df781 100644 --- a/apps/mobile/src/features/workspace/useSelectWorkspaceTab.ts +++ b/apps/mobile/src/features/workspace/useSelectWorkspaceTab.ts @@ -1,22 +1,20 @@ -import { StackActions, useNavigation } from "@react-navigation/native"; import { useCallback } from "react"; -import { Keyboard, Platform } from "react-native"; -import { resetAndroidWorkspace } from "../../lib/android-workspace-navigation"; +import { Keyboard } from "react-native"; + +import { useAdaptiveWorkspaceLayout } from "../layout/AdaptiveWorkspaceLayout"; import { useWorkspaceTabs } from "./WorkspaceTabsContext"; import type { WorkspaceTab } from "./workspace-tabs-state"; -/** Switch workspace tabs from inside the sidebar, closing any open detail first. */ +/** Opens a workspace tab, Settings included, from a tab bar, rail, toolbar or command. */ export function useSelectWorkspaceTab() { - const workspace = useWorkspaceTabs()!; - const navigation = useNavigation(); - const { dispatch } = workspace; + const dispatch = useWorkspaceTabs()?.dispatch; + const { openWorkspaceTab } = useAdaptiveWorkspaceLayout(); return useCallback( - (tab: WorkspaceTab) => { + (tab: WorkspaceTab | "settings") => { Keyboard.dismiss(); - if (Platform.OS === "android") resetAndroidWorkspace(navigation); - else navigation.dispatch(StackActions.popTo("Home")); - dispatch({ type: "select", tab }); + openWorkspaceTab(tab); + if (tab !== "settings") dispatch?.({ type: "select", tab }); }, - [dispatch, navigation], + [dispatch, openWorkspaceTab], ); } diff --git a/apps/mobile/src/features/workspace/useSystemWorkspaceTabBar.ts b/apps/mobile/src/features/workspace/useSystemWorkspaceTabBar.ts index 35c41afb339f..cdeccc8b8a6f 100644 --- a/apps/mobile/src/features/workspace/useSystemWorkspaceTabBar.ts +++ b/apps/mobile/src/features/workspace/useSystemWorkspaceTabBar.ts @@ -8,8 +8,7 @@ import { workspaceUsesColumns } from "./workspace-tabs-state"; function useWorkspacePage() { const workspace = useWorkspaceTabs(); return ( - workspace !== null && - (workspace.settingsOpen || !workspaceUsesColumns(workspace.state.selectedTab)) + workspace !== null && !workspaceUsesColumns(workspace.state.selectedTab, workspace.settingsOpen) ); } diff --git a/apps/mobile/src/features/workspace/workspace-selection-store.ts b/apps/mobile/src/features/workspace/workspace-selection-store.ts new file mode 100644 index 000000000000..52c11038719b --- /dev/null +++ b/apps/mobile/src/features/workspace/workspace-selection-store.ts @@ -0,0 +1,142 @@ +import type { NavigationState } from "@react-navigation/native"; +import type { EnvironmentId, ThreadId } from "@t3tools/contracts"; +import * as Linking from "expo-linking"; +import { AppState, Dimensions, Platform } from "react-native"; + +import { environmentCatalog } from "../../connection/catalog"; +import { deriveLayout } from "../../lib/layout"; +import { + NATIVE_METRICS_TIMEOUT_MS, + nativeWorkspaceColumnsSupportedFor, +} from "../../native/NativeWorkspaceColumns"; +import { + currentNativeLayoutMetrics, + firstNativeLayoutMetrics, +} from "../../native/native-layout-metrics"; +import { loadPreferences, savePreferencesPatch } from "../../persistence/imperative"; +import { rootStackState, type RootStackNavigation } from "../../lib/root-stack-reset"; +import { workspaceRoutesOf } from "../layout/workspace-overlay-routes"; +import type { WorkspaceSelections } from "../../persistence/mobile-preferences"; +import { appAtomRegistry } from "../../state/atom-registry"; +import { environmentPresentations } from "../../state/presentation"; +import { environmentThreadShells, threadEnvironment } from "../../state/threads"; +import { + rememberedSettingsPage, + workspaceSelectionsIn, + type WorkspaceSelectionCheck, +} from "./workspace-tab-navigation"; + +// Only iOS columns reopen a remembered page; Android always opens a tab on its list. +const REMEMBERS = Platform.OS === "ios"; + +// Read synchronously when a tab opens, so it lives in memory and is saved when the app leaves +// the foreground rather than on every chat switch. +let selections: WorkspaceSelections = {}; +let saved = selections; +let hydration: Promise | null = null; + +function save() { + const writing = selections; + if (saved === writing) return; + // Marked saved only once written, so a failed write is retried on the next background. + void savePreferencesPatch({ workspaceSelections: writing }) + .then(() => { + saved = writing; + }) + .catch(() => undefined); +} + +/** Loads the saved selections once; pages visited before it resolves win over saved ones. */ +export function hydrateWorkspaceSelections() { + if (!REMEMBERS) return Promise.resolve(); + hydration ??= loadPreferences() + .then((preferences) => { + selections = { ...preferences.workspaceSelections, ...selections }; + saved = selections; + AppState.addEventListener("change", (status) => { + if (status !== "active") save(); + }); + }) + .catch(() => undefined); + return hydration; +} + +export function currentWorkspaceSelections() { + return selections; +} + +/** The navigation container's `onStateChange`: remembers the page each tab is showing. */ +export function recordWorkspaceSelections(state: NavigationState | undefined) { + if (!REMEMBERS || !state) return; + selections = workspaceSelectionsIn(state.routes.slice(0, state.index + 1), selections); +} + +function environmentRemoved(environmentId: string) { + const catalog = appAtomRegistry.get(environmentCatalog.catalogValueAtom); + return ( + catalog.isReady && + !appAtomRegistry + .get(environmentPresentations.presentationsAtom) + .has(environmentId as EnvironmentId) + ); +} + +/** + * A remembered chat is gone once its environment was removed, or once that environment's + * snapshot has loaded without it. Before it loads there is nothing to contradict it. + */ +export const workspaceSelectionCheck: WorkspaceSelectionCheck = { + thread: (selection) => { + if (environmentRemoved(selection.environmentId)) return false; + const environmentId = selection.environmentId as EnvironmentId; + if (!appAtomRegistry.get(threadEnvironment.snapshotAtom(environmentId))) return true; + return appAtomRegistry + .get(environmentThreadShells.environmentThreadIndexAtom(environmentId)) + .has(selection.threadId as ThreadId); + }, + pullRequest: (selection) => !environmentRemoved(selection.environmentId), +}; + +/** Whether the window lays the workspace out in columns, by the rule the layout itself uses. */ +export function workspaceHasColumns() { + const metrics = currentNativeLayoutMetrics(); + const { width, height } = metrics ?? Dimensions.get("window"); + return deriveLayout({ + width, + height, + nativeMetrics: metrics, + nativeWorkspace: nativeWorkspaceColumnsSupportedFor(metrics), + }).usesSplitView; +} + +/** The Settings page a bare `settings` link opens beside the list when there are columns. */ +export function settingsLinkPage() { + return REMEMBERS && workspaceHasColumns() ? rememberedSettingsPage(selections) : undefined; +} + +/** + * Where a cold start without a link opens. A window that starts with columns reopens the last + * chat beside the list instead of an empty detail column; a compact window opens on the list. + * It waits for the first layout metrics as long as the workspace itself does. + */ +export async function launchWorkspaceURL(): Promise { + if (!REMEMBERS) return null; + await Promise.all([ + hydrateWorkspaceSelections(), + firstNativeLayoutMetrics(NATIVE_METRICS_TIMEOUT_MS), + ]); + const thread = selections.threads; + if (!thread || !workspaceHasColumns() || !workspaceSelectionCheck.thread(thread)) return null; + return Linking.createURL( + `threads/${encodeURIComponent(thread.environmentId)}/${encodeURIComponent(thread.threadId)}`, + ); +} + +/** Whether the workspace shows its first detail page, directly above its list. */ +export function firstWorkspaceDetailOpen(navigation: RootStackNavigation) { + const state = rootStackState(navigation); + if (!state) return false; + const { workspace, overlays } = workspaceRoutesOf(state.routes.slice(0, state.index + 1)); + const list = (name: string | undefined) => name === "Home" || name === "Settings"; + return overlays.length === 0 && !list(workspace.at(-1)?.name) && list(workspace.at(-2)?.name); +} diff --git a/apps/mobile/src/features/workspace/workspace-tab-navigation.test.ts b/apps/mobile/src/features/workspace/workspace-tab-navigation.test.ts new file mode 100644 index 000000000000..a7c84f5f6d5d --- /dev/null +++ b/apps/mobile/src/features/workspace/workspace-tab-navigation.test.ts @@ -0,0 +1,162 @@ +import { describe, expect, it } from "vite-plus/test"; + +import { restoreSettingsLinkState } from "../settings/settings-navigation"; +import { workspaceSelectionsIn, workspaceTabNavigationState } from "./workspace-tab-navigation"; + +const home = { key: "home", name: "Home" }; +const thread = { + key: "thread", + name: "Thread", + params: { environmentId: "env", threadId: "thread-a" }, +}; +const pullRequest = { + key: "pr", + name: "PullRequest", + params: { environmentId: "env", projectId: "project", repository: "o/r", number: 7 }, +}; +const settings = { key: "settings", name: "Settings" }; +const available = { thread: () => true, pullRequest: () => true }; +const names = (state: { routes: readonly { name: string }[] }) => + state.routes.map((route) => route.name); + +describe("workspace tab selections", () => { + it("remembers the chat, pull request and Settings page each tab showed", () => { + const afterThread = workspaceSelectionsIn([home, thread], {}); + const afterPullRequest = workspaceSelectionsIn([home, pullRequest], afterThread); + expect(afterPullRequest).toMatchObject({ + threads: thread.params, + pullRequests: pullRequest.params, + }); + const afterSettings = workspaceSelectionsIn( + [home, settings, { key: "appearance", name: "SettingsAppearance" }], + afterPullRequest, + ); + expect(afterSettings.settings).toBe("SettingsAppearance"); + expect(workspaceSelectionsIn([home, thread], afterSettings)).toBe(afterSettings); + }); + + it("doesn't remember pages a Settings row doesn't open", () => { + for (const name of ["SettingsEnvironmentNew", "SettingsProjectOverview", "SettingsAuth"]) { + expect(workspaceSelectionsIn([home, settings, { key: name, name }], {}).settings).toBe( + undefined, + ); + } + }); +}); + +describe("opening a workspace tab", () => { + const columns = { columns: true, check: available }; + + it("opens the remembered page beside the list with columns, and the list without", () => { + const state = { routes: [home, thread] }; + const selections = { threads: thread.params, pullRequests: pullRequest.params }; + expect(names(workspaceTabNavigationState(state, "pullRequests", selections, columns))).toEqual([ + "Home", + "PullRequest", + ]); + expect( + names( + workspaceTabNavigationState(state, "pullRequests", selections, { + columns: false, + check: available, + }), + ), + ).toEqual(["Home"]); + expect(names(workspaceTabNavigationState(state, "settings", {}, columns))).toEqual([ + "Home", + "Settings", + "SettingsEnvironments", + ]); + }); + + it("keeps the route that is already open, so re-selecting a tab doesn't rebuild it", () => { + const next = workspaceTabNavigationState( + { routes: [home, thread] }, + "threads", + { threads: thread.params }, + columns, + ); + expect(next.routes.map((route) => route.key)).toEqual(["home", "thread"]); + }); + + it("reopens a tab's page under the key it had, so its kept screen is reused", () => { + const columnsAvailable = { columns: true, check: available }; + let selections = workspaceSelectionsIn([home, thread], {}); + const away = workspaceTabNavigationState( + { routes: [home, thread] }, + "pullRequests", + selections, + { + columns: false, + check: available, + }, + ); + selections = workspaceSelectionsIn(away.routes, selections); + const back = workspaceTabNavigationState(away, "threads", selections, columnsAvailable); + expect(back.routes.at(-1)).toMatchObject({ key: "thread", params: thread.params }); + }); + + it("falls back to the list for a chat that no longer exists, or an unknown Settings page", () => { + const missing = { thread: () => false, pullRequest: () => true }; + expect( + names( + workspaceTabNavigationState( + { routes: [home] }, + "threads", + { threads: thread.params }, + { + columns: true, + check: missing, + }, + ), + ), + ).toEqual(["Home"]); + expect( + names( + workspaceTabNavigationState( + { routes: [home] }, + "settings", + { settings: "SettingsGone" }, + columns, + ), + ), + ).toEqual(["Home", "Settings", "SettingsEnvironments"]); + }); + + it("keeps an open sheet on top", () => { + const sheet = { key: "sheet", name: "ConnectOnboarding" }; + const next = workspaceTabNavigationState( + { routes: [home] }, + "threads", + { threads: thread.params }, + { + ...columns, + overlays: [sheet], + }, + ); + expect(names(next)).toEqual(["Home", "Thread", "ConnectOnboarding"]); + expect(next.index).toBe(2); + }); +}); + +describe("Settings links", () => { + it("puts the Settings list under a linked page, and a page beside a bare link with columns", () => { + const linked = restoreSettingsLinkState( + { routes: [{ name: "Home" }, { name: "SettingsKeyboard" }] }, + undefined, + ); + expect(names(linked!)).toEqual(["Home", "Settings", "SettingsKeyboard"]); + const bare = { routes: [{ name: "Home" }, { name: "Settings" }] }; + expect(names(restoreSettingsLinkState(bare, "SettingsAppearance")!)).toEqual([ + "Home", + "Settings", + "SettingsAppearance", + ]); + expect(restoreSettingsLinkState(bare, undefined)).toBe(bare); + }); + + it("opens the sign-in link as a modal over the workspace", () => { + const state = { routes: [{ name: "Home" }, { name: "SettingsAuth" }] }; + expect(restoreSettingsLinkState(state, "SettingsAppearance")).toBe(state); + }); +}); diff --git a/apps/mobile/src/features/workspace/workspace-tab-navigation.ts b/apps/mobile/src/features/workspace/workspace-tab-navigation.ts new file mode 100644 index 000000000000..27c11686fe10 --- /dev/null +++ b/apps/mobile/src/features/workspace/workspace-tab-navigation.ts @@ -0,0 +1,202 @@ +import type { WorkspaceSelections } from "../../persistence/mobile-preferences"; +import { + SETTINGS_PAGE_TARGETS, + type SettingsPageTarget, +} from "../settings/components/settings-page-targets"; +import { settingsNavigationState } from "../settings/settings-navigation"; +import type { WorkspaceTab } from "./workspace-tabs-state"; + +type RouteLike = { + readonly name: string; + readonly key?: string; + readonly params?: object | undefined; +}; +type ThreadSelection = NonNullable; +type PullRequestSelection = NonNullable; + +/** Opened when Settings has columns and none of its pages has been opened yet. */ +export const DEFAULT_SETTINGS_PAGE = "SettingsEnvironments" satisfies SettingsPageTarget; + +// Pages a Settings row opens, minus Project overview: it shows the project chosen in the +// Settings scope, which resets whenever Settings closes. +const REMEMBERED_SETTINGS_PAGES: ReadonlySet = new Set( + SETTINGS_PAGE_TARGETS.filter((page) => page !== "SettingsProjectOverview"), +); + +export function rememberedSettingsPage(selections: WorkspaceSelections): SettingsPageTarget { + return selections.settings && REMEMBERED_SETTINGS_PAGES.has(selections.settings) + ? (selections.settings as SettingsPageTarget) + : DEFAULT_SETTINGS_PAGE; +} + +/** Whether a remembered chat or pull request can still be opened. */ +export interface WorkspaceSelectionCheck { + readonly thread: (selection: ThreadSelection) => boolean; + readonly pullRequest: (selection: PullRequestSelection) => boolean; +} + +function stringParam(params: object | undefined, key: string) { + const value = (params as Record | undefined)?.[key]; + return typeof value === "string" ? value : undefined; +} + +function pullRequestSelection( + params: object | undefined, +): Omit | undefined { + const value = params as Record | undefined; + if ( + typeof value?.environmentId !== "string" || + typeof value.projectId !== "string" || + typeof value.repository !== "string" || + typeof value.number !== "number" + ) { + return undefined; + } + return { + environmentId: value.environmentId, + projectId: value.projectId, + repository: value.repository, + number: value.number, + ...(typeof value.host === "string" ? { host: value.host } : {}), + }; +} + +function samePullRequest( + left: PullRequestSelection | undefined, + right: Omit, +) { + return ( + left?.environmentId === right.environmentId && + left.projectId === right.projectId && + left.repository === right.repository && + left.number === right.number && + left.host === right.host + ); +} + +/** + * The page each tab shows in a root route chain: the newest chat, the newest pull request, and + * the Settings page directly above the Settings route. Returns `previous` when nothing changed. + */ +export function workspaceSelectionsIn( + routes: readonly RouteLike[], + previous: WorkspaceSelections, +): WorkspaceSelections { + let next = previous; + const thread = routes.findLast((route) => route.name === "Thread"); + const environmentId = stringParam(thread?.params, "environmentId"); + const threadId = stringParam(thread?.params, "threadId"); + if ( + environmentId && + threadId && + (next.threads?.environmentId !== environmentId || + next.threads.threadId !== threadId || + next.threads.key !== thread?.key) + ) { + next = { ...next, threads: { environmentId, threadId, key: thread?.key } }; + } + const pullRequestRoute = routes.findLast((route) => route.name === "PullRequest"); + const pullRequest = pullRequestSelection(pullRequestRoute?.params); + if ( + pullRequest && + (!samePullRequest(next.pullRequests, pullRequest) || + next.pullRequests?.key !== pullRequestRoute?.key) + ) { + next = { ...next, pullRequests: { ...pullRequest, key: pullRequestRoute?.key } }; + } + const list = routes.findIndex((route) => route.name === "Settings"); + const page = list < 0 ? undefined : routes[list + 1]; + if ( + page && + REMEMBERED_SETTINGS_PAGES.has(page.name) && + (page.name !== next.settings || page.key !== next.settingsKey) + ) { + next = { ...next, settings: page.name, settingsKey: page.key }; + } + return next; +} + +function identityOf({ key: _key, ...identity }: PullRequestSelection) { + return identity; +} + +let routeKeys = 0; + +/** New routes get their key here, so the caller knows which route it is about to show. */ +function keyed(route: Route): Route & { readonly key: string } { + if (route.key !== undefined) return route as Route & { readonly key: string }; + routeKeys += 1; + return { ...route, key: `${route.name}-workspace-${routeKeys}` }; +} + +function detailRoute( + state: { readonly routes: readonly RouteLike[] }, + tab: "threads" | "pullRequests", + selections: WorkspaceSelections, + check: WorkspaceSelectionCheck, +): RouteLike | undefined { + if (tab === "threads") { + const thread = selections.threads; + if (!thread || !check.thread(thread)) return undefined; + return ( + state.routes.find( + (route) => + route.name === "Thread" && + stringParam(route.params, "environmentId") === thread.environmentId && + stringParam(route.params, "threadId") === thread.threadId, + ) ?? { + key: thread.key, + name: "Thread", + params: { environmentId: thread.environmentId, threadId: thread.threadId }, + } + ); + } + const pullRequest = selections.pullRequests; + if (!pullRequest || !check.pullRequest(pullRequest)) return undefined; + return ( + state.routes.find( + (route) => + route.name === "PullRequest" && + samePullRequest(pullRequestSelection(route.params), pullRequest), + ) ?? { key: pullRequest.key, name: "PullRequest", params: identityOf(pullRequest) } + ); +} + +/** + * The root stack for opening a workspace tab. With columns the detail column must show + * something, so the tab reopens the page it last showed (Settings falls back to its default); + * without columns the tab opens on its list. Routes already on screen keep their keys, and + * `overlays` (open sheets) stay on top. + */ +export function workspaceTabNavigationState< + State extends { readonly routes: readonly RouteLike[] }, +>( + state: State, + tab: WorkspaceTab | "settings", + selections: WorkspaceSelections, + options: { + readonly columns: boolean; + readonly check: WorkspaceSelectionCheck; + readonly overlays?: readonly RouteLike[]; + }, +) { + const overlays = options.overlays ?? []; + if (tab === "settings") { + const page = options.columns ? rememberedSettingsPage(selections) : undefined; + const settings = settingsNavigationState( + state, + page, + undefined, + page === selections.settings ? selections.settingsKey : undefined, + ); + const routes = [...settings.routes.map(keyed), ...overlays]; + return { ...settings, index: routes.length - 1, routes }; + } + const home = state.routes.find((route) => route.name === "Home") ?? { name: "Home" }; + const detail = + options.columns && tab !== "usage" + ? detailRoute(state, tab, selections, options.check) + : undefined; + const routes = [...[home, ...(detail ? [detail] : [])].map(keyed), ...overlays]; + return { ...state, index: routes.length - 1, routes }; +} diff --git a/apps/mobile/src/features/workspace/workspace-tabs-state.test.ts b/apps/mobile/src/features/workspace/workspace-tabs-state.test.ts index 197d4ba27a00..f476d009857b 100644 --- a/apps/mobile/src/features/workspace/workspace-tabs-state.test.ts +++ b/apps/mobile/src/features/workspace/workspace-tabs-state.test.ts @@ -49,16 +49,11 @@ describe("Duo list clearance", () => { }); describe("workspace root navigation", () => { - it("keeps Usage and Settings out of the list/detail layout", () => { + it("pairs Settings, chats and pull requests with a detail column, and keeps Usage one page", () => { expect(workspaceUsesColumns("usage")).toBe(false); - expect(workspaceUsesColumns("threads", "SettingsSheet")).toBe(false); - expect(workspaceUsesColumns("pullRequests", "SettingsSheet")).toBe(false); - }); - - it("restores columns for chat and pull request lists and their details", () => { + expect(workspaceUsesColumns("usage", true)).toBe(true); expect(workspaceUsesColumns("threads")).toBe(true); - expect(workspaceUsesColumns("threads", "Thread")).toBe(true); - expect(workspaceUsesColumns("pullRequests", "PullRequest")).toBe(true); + expect(workspaceUsesColumns("pullRequests")).toBe(true); }); it("keeps the registered defaults while customization is unavailable", () => { diff --git a/apps/mobile/src/features/workspace/workspace-tabs-state.ts b/apps/mobile/src/features/workspace/workspace-tabs-state.ts index 52bafb42a708..6355796c84ef 100644 --- a/apps/mobile/src/features/workspace/workspace-tabs-state.ts +++ b/apps/mobile/src/features/workspace/workspace-tabs-state.ts @@ -14,8 +14,9 @@ export function resolveWorkspaceTabOrder(saved: readonly unknown[] | undefined) export type WorkspaceTab = NavigationTab; export type WorkspaceSearchMode = "resting" | "active" | "expanded"; -export function workspaceUsesColumns(tab: WorkspaceTab, detailRoute?: string) { - return (tab === "threads" || tab === "pullRequests") && detailRoute !== "SettingsSheet"; +/** Settings, Chats and pull requests pair a list with a detail column; Usage is one page. */ +export function workspaceUsesColumns(tab: WorkspaceTab, settingsOpen = false) { + return settingsOpen || tab === "threads" || tab === "pullRequests"; } export interface WorkspaceTabState { diff --git a/apps/mobile/src/lib/adaptive-navigation.test.ts b/apps/mobile/src/lib/adaptive-navigation.test.ts index bf0c83967543..320b92a803eb 100644 --- a/apps/mobile/src/lib/adaptive-navigation.test.ts +++ b/apps/mobile/src/lib/adaptive-navigation.test.ts @@ -39,7 +39,7 @@ describe("resolveThreadSelectionOverlayState", () => { key: "workspace", type: "stack", stale: false as const, - routeNames: ["Home", "Thread", "ThreadFiles", "SettingsSheet", "SettingsLegal"], + routeNames: ["Home", "Thread", "ThreadFiles", "Connections", "SettingsLegal"], }; const home = { key: "home", name: "Home" }; const thread = { @@ -48,7 +48,7 @@ describe("resolveThreadSelectionOverlayState", () => { params: { environmentId: "environment", threadId: "old-thread" }, }; const files = { key: "files", name: "ThreadFiles", params: thread.params }; - const settings = { key: "settings", name: "SettingsSheet" }; + const settings = { key: "settings", name: "Connections" }; const params = { environmentId: "environment", threadId: "new-thread" }; it("replaces the underlying file route and dismisses every overlay above it", () => { @@ -98,11 +98,11 @@ it("replacing a draft underneath an overlay removes its draft identity", () => { key: "root", type: "stack", stale: false, - routeNames: ["Thread", "SettingsSheet"], + routeNames: ["Thread", "Connections"], index: 1, routes: [ { key: "draft", name: "Thread", params: { draft: { draftId: "old" } } }, - { key: "settings", name: "SettingsSheet" }, + { key: "settings", name: "Connections" }, ], }, workspaceRouteKey: "draft", diff --git a/apps/mobile/src/lib/android-workspace-navigation.test.ts b/apps/mobile/src/lib/android-workspace-navigation.test.ts index 88c4e945fe36..c55c3a9e98d6 100644 --- a/apps/mobile/src/lib/android-workspace-navigation.test.ts +++ b/apps/mobile/src/lib/android-workspace-navigation.test.ts @@ -12,8 +12,8 @@ import { resetAndroidWorkspace, returnToAndroidWorkspaceList, type AndroidWorkspaceDestination, - type AndroidWorkspaceResetAction, } from "./android-workspace-navigation"; +import type { RootStackResetAction } from "./root-stack-reset"; const require = NodeModule.createRequire(import.meta.url); const nativePackage = require.resolve("@react-navigation/native/package.json"); @@ -38,7 +38,9 @@ const options = { "PullRequest", "PullRequestFile", "PullRequestReviewers", - "SettingsSheet", + "Settings", + "SettingsUsage", + "SettingsUsageAccount", ], routeParamList: {}, routeGetIdList: {}, @@ -159,7 +161,7 @@ describe("Android workspace navigation", () => { ); let listSelected = false; const navigation = { - dispatch: (action: AndroidWorkspaceResetAction) => { + dispatch: (action: RootStackResetAction) => { state = apply(state, action); }, getParent: () => undefined, @@ -248,13 +250,10 @@ describe("Android workspace navigation", () => { ).toBe(false); }); - it("resets the root stack when a nested Settings stack has focus", () => { - const root = apply(router.getInitialState(options), StackActions.push("SettingsSheet")); - const settings = router.getInitialState({ - ...options, - routeNames: ["SettingsContent", "SettingsEnvironments"], - }); - const actions: AndroidWorkspaceResetAction[] = []; + it("resets the root stack when a nested stack has focus", () => { + const root = apply(router.getInitialState(options), StackActions.push("Thread", thread.params)); + const nested = router.getInitialState({ ...options, routeNames: ["Nested", "NestedChild"] }); + const actions: RootStackResetAction[] = []; const rootNavigation = { dispatch: () => undefined, getParent: () => undefined, @@ -264,7 +263,7 @@ describe("Android workspace navigation", () => { { dispatch: (action) => actions.push(action), getParent: () => rootNavigation, - getState: () => settings, + getState: () => nested, }, thread, ); @@ -275,7 +274,7 @@ describe("Android workspace navigation", () => { it("resets from the navigation container before any navigation action", () => { const root = router.getInitialState(options); - const actions: AndroidWorkspaceResetAction[] = []; + const actions: RootStackResetAction[] = []; // The container only learns the root state after the first action. resetAndroidWorkspace( { @@ -303,7 +302,7 @@ describe("Android Settings tab", () => { it("opens over Home alone, dropping chat and PR history, and Back returns to Home", () => { const previous = legacyHistory(); const settings = openTab(previous, "settings"); - expect(names(settings)).toEqual(["Home", "SettingsSheet"]); + expect(names(settings)).toEqual(["Home", "Settings"]); expect(settings.routes[0]?.key).toBe(previous.routes[0]?.key); expect(selectedTab(settings, "threads")).toBe("settings"); const back = apply(settings, StackActions.pop()); @@ -312,32 +311,21 @@ describe("Android Settings tab", () => { expect(selectedTab(back, "settings")).not.toBe("settings"); }); - it("stays selected under a nested settings page until a list tab returns to Home", () => { + it("stays selected under a settings page until a list tab returns to Home", () => { const previous = legacyHistory(); - const settings = openTab(previous, "settings"); - // Usage pushes inside the nested settings navigator, which the root router never sees. - const usage: State = { - ...settings, - routes: settings.routes.map((route) => - route.name === "SettingsSheet" - ? { - ...route, - state: { - routes: [ - { - name: "SettingsContent", - state: { index: 1, routes: [{ name: "Settings" }, { name: "SettingsUsage" }] }, - }, - ], - }, - } - : route, - ), - }; + const usage = apply(openTab(previous, "settings"), StackActions.push("SettingsUsage")); expect(selectedTab(usage, "threads")).toBe("settings"); const list = openTab(usage, "pullRequests"); expect(names(list)).toEqual(["Home"]); expect(list.routes[0]?.key).toBe(previous.routes[0]?.key); expect(selectedTab(list, "pullRequests")).toBe("pullRequests"); }); + + it("leaves a settings page opened from the Usage tab in that tab", () => { + const account = apply( + router.getInitialState(options), + StackActions.push("SettingsUsageAccount"), + ); + expect(selectedTab(account, "usage")).toBe("usage"); + }); }); diff --git a/apps/mobile/src/lib/android-workspace-navigation.ts b/apps/mobile/src/lib/android-workspace-navigation.ts index af7ff01440f1..0c5408d82b6a 100644 --- a/apps/mobile/src/lib/android-workspace-navigation.ts +++ b/apps/mobile/src/lib/android-workspace-navigation.ts @@ -1,21 +1,10 @@ -import type { CommonActions, NavigationState } from "@react-navigation/native"; +import type { NavigationState } from "@react-navigation/native"; +import { resetRootStack, type RootStackNavigation } from "./root-stack-reset"; export type AndroidWorkspaceDestination = | { readonly name: "Thread"; readonly params: ReactNavigation.RootParamList["Thread"] } | { readonly name: "PullRequest"; readonly params: ReactNavigation.RootParamList["PullRequest"] }; -export type AndroidWorkspaceResetAction = ReturnType & { - readonly target: string; -}; - -interface WorkspaceNavigation { - readonly dispatch: (action: AndroidWorkspaceResetAction) => void; - readonly getParent: () => WorkspaceNavigation | undefined; - readonly getState: () => NavigationState | undefined; - /** Only on the navigation container, whose `getState` stays empty until the first action. */ - readonly getRootState?: () => NavigationState | undefined; -} - function androidWorkspaceBackReturnsToThread(state: NavigationState) { const current = state.routes[state.index]; const params = current?.params as ReactNavigation.RootParamList["Thread"] | undefined; @@ -55,27 +44,15 @@ export function androidWorkspaceNavigationState( }; } -/** - * Resets the root stack to a workspace list or detail. Always reads and targets the root - * navigator: the sidebar and rail render in the root layout, where `useNavigation()` is the - * container, and a container dispatch runs on the deepest focused navigator. With Settings - * or New task open, that is their nested stack, which rejects the reset. - */ +/** Resets the root stack to a workspace list or detail. */ export function resetAndroidWorkspace( - navigation: WorkspaceNavigation, + navigation: RootStackNavigation, destination?: AndroidWorkspaceDestination, reviewers?: ReactNavigation.RootParamList["PullRequestReviewers"], ) { - let root = navigation; - for (let parent = root.getParent(); parent; parent = root.getParent()) root = parent; - const state = root.getRootState?.() ?? root.getState(); - if (!state) return; - // Same shape as `CommonActions.reset`, which would pull React Native into node tests. - navigation.dispatch({ - type: "RESET", - payload: androidWorkspaceNavigationState(state, destination, reviewers), - target: state.key, - }); + resetRootStack(navigation, (state) => + androidWorkspaceNavigationState(state, destination, reviewers), + ); } export function parentThreadIsBelow( @@ -114,7 +91,7 @@ export function linkedThreadStep( } export function returnToAndroidWorkspaceList( - navigation: WorkspaceNavigation & { readonly goBack: () => void }, + navigation: RootStackNavigation & { readonly goBack: () => void }, selectTab: () => void, ) { const state = navigation.getState(); diff --git a/apps/mobile/src/lib/layout.ts b/apps/mobile/src/lib/layout.ts index 5993d7897b4f..44dfb9b6ebc9 100644 --- a/apps/mobile/src/lib/layout.ts +++ b/apps/mobile/src/lib/layout.ts @@ -175,12 +175,17 @@ export function alignListPaneToHinge(input: { * collapse it there. Compact layouts stay pinned so a reveal request (such as * focusing search) cannot flip the saved preference for a later split view. */ +/** Home's list, or the Settings list in its place, with no detail selected. */ +export function isWorkspaceListPath(pathname: string): boolean { + return pathname === "/" || pathname === "/settings"; +} + export function isPrimarySidebarPinned(input: { readonly pathname: string; readonly nativeWorkspace: boolean; readonly usesSplitView: boolean; }): boolean { - return input.pathname === "/" && !(input.nativeWorkspace && input.usesSplitView); + return isWorkspaceListPath(input.pathname) && !(input.nativeWorkspace && input.usesSplitView); } export function deriveWorkspacePaneLayout(input: { diff --git a/apps/mobile/src/lib/root-stack-reset.ts b/apps/mobile/src/lib/root-stack-reset.ts new file mode 100644 index 000000000000..87bca86a5384 --- /dev/null +++ b/apps/mobile/src/lib/root-stack-reset.ts @@ -0,0 +1,44 @@ +import type { CommonActions, NavigationState } from "@react-navigation/native"; + +export type RootStackResetAction = ReturnType & { + readonly target: string; +}; + +export interface RootStackNavigation { + readonly dispatch: (action: RootStackResetAction) => void; + readonly getParent: () => RootStackNavigation | undefined; + readonly getState: () => NavigationState | undefined; + /** Only on the navigation container, whose `getState` stays empty until the first action. */ + readonly getRootState?: () => NavigationState | undefined; +} + +/** + * The root stack's state, read from anywhere. The sidebar and rail render in the root layout, + * where `useNavigation()` is the container, so walk up to the root navigator. + */ +export function rootStackState(navigation: RootStackNavigation) { + let root = navigation; + for (let parent = root.getParent(); parent; parent = root.getParent()) root = parent; + return root.getRootState?.() ?? root.getState(); +} + +/** + * Replaces the root stack. Targets the root explicitly: a container dispatch runs on the deepest + * focused navigator, which can be a nested stack that rejects the reset. + */ +export function dispatchRootStackReset( + navigation: RootStackNavigation, + state: NavigationState, + payload: RootStackResetAction["payload"], +) { + // Same shape as `CommonActions.reset`, which would pull React Native into node tests. + navigation.dispatch({ type: "RESET", payload, target: state.key }); +} + +export function resetRootStack( + navigation: RootStackNavigation, + nextState: (state: NavigationState) => RootStackResetAction["payload"], +) { + const state = rootStackState(navigation); + if (state) dispatchRootStackReset(navigation, state, nextState(state)); +} diff --git a/apps/mobile/src/native/NativeHeaderToolbar.test.tsx b/apps/mobile/src/native/NativeHeaderToolbar.test.tsx index 60fe05661f4c..2b3275de637d 100644 --- a/apps/mobile/src/native/NativeHeaderToolbar.test.tsx +++ b/apps/mobile/src/native/NativeHeaderToolbar.test.tsx @@ -19,7 +19,9 @@ const harness = vi.hoisted(() => ({ // Native headers retain the actions materialized when navigation applies options. Like React // Navigation, the header renders again only when the options are no longer shallowly equal. -vi.mock("@react-navigation/native", () => { +vi.mock("@react-navigation/native", async () => { + // vi.mock factories run before the file's imports. + const { createContext } = await vi.importActual("react"); const navigation = { setOptions(options: HeaderOptions) { harness.setOptionsCalls += 1; @@ -39,6 +41,8 @@ vi.mock("@react-navigation/native", () => { }, }; return { + // Outside a workspace tab slot the header writes to the route's navigation. + NavigationRouteContext: createContext(undefined), useNavigation: () => navigation, useRoute: () => ({ key: "file", name: "ThreadFile", params: harness.params }), }; diff --git a/apps/mobile/src/native/NativeHeaderToolbar.tsx b/apps/mobile/src/native/NativeHeaderToolbar.tsx index 3f7f98a4b232..0d075384e0a4 100644 --- a/apps/mobile/src/native/NativeHeaderToolbar.tsx +++ b/apps/mobile/src/native/NativeHeaderToolbar.tsx @@ -1,9 +1,8 @@ -import { useNavigation, useRoute, type ParamListBase } from "@react-navigation/native"; +import { useRoute } from "@react-navigation/native"; import type { NativeStackHeaderItem, NativeStackHeaderItemMenu, NativeStackNavigationOptions, - NativeStackNavigationProp, } from "@react-navigation/native-stack"; import { Children, @@ -17,11 +16,7 @@ import { import type { ColorValue } from "react-native"; import type { HeaderBarButtonSearchBarPlacementItem } from "react-native-screens"; import { NativeWorkspaceTabActivityContext } from "./v5-workspace-context"; -import { NativeStackScreenOptions } from "./StackHeader"; - -function useNativeStackNavigation(): NativeStackNavigationProp | null { - return useNavigation>(); -} +import { NativeStackScreenOptions, useScreenOptionsWriter } from "./StackHeader"; function labelFromChildren(children: ReactNode): string { const parts: string[] = []; @@ -230,7 +225,7 @@ function NativeHeaderToolbarRoot(props: { readonly placement?: "left" | "right" | "bottom"; readonly children?: ReactNode; }) { - const navigation = useNativeStackNavigation(); + const setOptions = useScreenOptionsWriter(); const route = useRoute(); const tabActivity = use(NativeWorkspaceTabActivityContext); const isTabActive = tabActivity?.isActive; @@ -242,20 +237,20 @@ function NativeHeaderToolbarRoot(props: { ); useLayoutEffect(() => { - if (!navigation) return; + if (!setOptions) return; return () => { if (isTabActive && !isTabActive()) return; if (props.placement === "bottom") { - navigation.setOptions({ + setOptions({ unstable_headerToolbarItems: () => [], } as NativeStackOptionsWithToolbar); } else if (props.placement === "left") { - navigation.setOptions({ unstable_headerLeftItems: () => [] }); + setOptions({ unstable_headerLeftItems: () => [] }); } else { - navigation.setOptions({ unstable_headerRightItems: () => [] }); + setOptions({ unstable_headerRightItems: () => [] }); } }; - }, [navigation, props.placement, isTabActive]); + }, [setOptions, props.placement, isTabActive]); return ( { + if (setSlotOptions && routeKey !== undefined) + return (options: NativeStackNavigationOptions) => setSlotOptions(routeKey, options); + return navigation + ? (options: NativeStackNavigationOptions) => navigation.setOptions(options) + : null; + }, [navigation, routeKey, setSlotOptions]); +} + export function NativeStackScreenOptions(props: { readonly options?: AppNativeStackNavigationOptions; /** @@ -173,6 +197,7 @@ export function NativeStackScreenOptions(props: { readonly name?: string; }) { const navigation = useNativeStackNavigation(); + const setOptions = useScreenOptionsWriter(); const tabActive = use(NativeWorkspaceTabActivityContext)?.active ?? true; const lastAppliedOptionsSignatureRef = useRef(undefined); const latestOptionFunctionsRef = useRef(new Map unknown>()); @@ -192,7 +217,7 @@ export function NativeStackScreenOptions(props: { lastAppliedOptionsSignatureRef.current = undefined; return; } - if (!navigation || !stableOptions) { + if (!setOptions || !stableOptions) { return; } const signature = optionsSignature([stableOptions, props.optionsVersion]); @@ -204,7 +229,7 @@ export function NativeStackScreenOptions(props: { // stabilized factories keep their identity, so one whose output changed needs a new wrapper // to reach the header. optionFunctionWrappersRef.current = new Map(); - navigation.setOptions( + setOptions( stabilizeOptionFunctions( normalizedOptions, "options", @@ -212,7 +237,7 @@ export function NativeStackScreenOptions(props: { optionFunctionWrappersRef.current, ) as NativeStackNavigationOptions, ); - }, [navigation, normalizedOptions, props.optionsVersion, stableOptions, tabActive]); + }, [setOptions, normalizedOptions, props.optionsVersion, stableOptions, tabActive]); useEffect(() => { if (!navigation || !props.listeners) { diff --git a/apps/mobile/src/native/createV5StackNavigator.ios.tsx b/apps/mobile/src/native/createV5StackNavigator.ios.tsx index 9b25c1ed109d..af43b47d1a56 100644 --- a/apps/mobile/src/native/createV5StackNavigator.ios.tsx +++ b/apps/mobile/src/native/createV5StackNavigator.ios.tsx @@ -20,7 +20,8 @@ import { type NativeStackNavigatorProps, type NativeStackTypeBag, } from "@react-navigation/native-stack"; -import { useCallback, useRef, useState, type ComponentProps } from "react"; +import { use, useCallback, useRef, useState, type ComponentProps } from "react"; +import { WorkspaceSlotOptionsContext, slotScreenOptions } from "./v5-workspace-context"; import { StyleSheet, View } from "react-native"; import { FormSheet, Stack } from "react-native-screens"; import { NativeScrollEdgeEffectsContext } from "./NativeScrollViewMarker"; @@ -56,6 +57,8 @@ export function V5CardStackView( props: V5StackViewProps & { readonly onRootVisibilityChange?: (visible: boolean) => void }, ) { const { preventedRoutes } = usePreventRemoveContext(); + // Options a screen set inside this workspace tab slot, over its route's. + const slot = use(WorkspaceSlotOptionsContext); const nativePopSource = useRef(null); const [screens, setScreens] = useState({ completedNativeDismissals: new Set(), @@ -148,6 +151,7 @@ export function V5CardStackView( {screens.routes.map((route, index) => { const descriptor = props.descriptors[route.key] ?? screens.descriptors[route.key]; if (!descriptor) return null; + const options = slotScreenOptions(slot, route.key, descriptor.options); const attached = props.state.routes.some((current) => current.key === route.key); return ( current.key === route.key) > 0 @@ -237,15 +240,12 @@ export function V5CardStackView( } /> - + {descriptor.render()} @@ -262,9 +262,7 @@ export function V5CardStackView( export function V5StackView(props: V5StackViewProps) { const groups = partitionStackPresentations(props.state.routes, (route) => { const presentation = props.descriptors[route.key]?.options.presentation; - return ( - route.name === "SettingsSheet" || (presentation !== undefined && presentation !== "card") - ); + return presentation !== undefined && presentation !== "card"; }); const routes = groups.map((group) => group[0]!); const descriptors = Object.fromEntries( @@ -304,118 +302,7 @@ export function V5StackView(props: V5StackViewProps) { ); } -export function V5SheetStackView(props: V5StackViewProps) { - const { preventedRoutes } = usePreventRemoveContext(); - const groups = partitionStackPresentations( - props.state.routes, - (route) => props.descriptors[route.key]?.options.presentation === "formSheet", - ); - const [retained, setRetained] = useState({ - groups: groups.slice(1), - descriptors: props.descriptors, - observedRoutes: props.state.routes, - observedDescriptors: props.descriptors, - }); - if ( - retained.observedRoutes !== props.state.routes || - retained.observedDescriptors !== props.descriptors - ) { - const active = new Set(groups.slice(1).map((group) => group[0]!.key)); - const sheets = [ - ...groups.slice(1), - ...retained.groups.filter((group) => !active.has(group[0]!.key)), - ]; - const sheetKeys = new Set(sheets.flatMap((group) => group.map((route) => route.key))); - setRetained({ - groups: sheets, - descriptors: Object.fromEntries( - Object.entries({ ...retained.descriptors, ...props.descriptors }).filter(([key]) => - sheetKeys.has(key), - ), - ), - observedRoutes: props.state.routes, - observedDescriptors: props.descriptors, - }); - } - const removeSheet = (key: string) => { - setRetained((current) => { - const sheets = current.groups.filter((group) => group[0]!.key !== key); - const sheetKeys = new Set(sheets.flatMap((group) => group.map((route) => route.key))); - return { - ...current, - groups: sheets, - descriptors: Object.fromEntries( - Object.entries(current.descriptors).filter(([routeKey]) => sheetKeys.has(routeKey)), - ), - }; - }); - }; - const base = groups[0] ?? []; - return ( - - - {retained.groups.map((group) => { - const first = group[0]!; - const descriptor = props.descriptors[first.key] ?? retained.descriptors[first.key]; - if (!descriptor) return null; - const options = descriptor.options; - const attached = nativeWorkspacePopCount(props.state, first.key) > 0; - return ( - preventedRoutes[route.key]?.preventRemove) || - options.gestureEnabled === false - } - onNativeDismissPrevented={() => { - const guarded = group.findLast((route) => preventedRoutes[route.key]?.preventRemove); - if (guarded) { - const state = props.navigation.getState(); - const action = nativeWorkspacePopAction(state, first.key); - if (action) props.navigation.dispatch(action); - } - }} - onDismiss={() => removeSheet(first.key)} - onNativeDismiss={() => { - const state = props.navigation.getState(); - const action = nativeWorkspacePopAction(state, first.key); - if (action) props.navigation.dispatch(action); - removeSheet(first.key); - }} - > - - - ); - })} - - ); -} - function V5Navigator({ - nativeSheets, id, initialRouteName, UNSTABLE_routeNamesChangeBehavior, @@ -426,7 +313,7 @@ function V5Navigator({ screenLayout, UNSTABLE_router, ...rest -}: NativeStackNavigatorProps & { readonly nativeSheets?: boolean }) { +}: NativeStackNavigatorProps) { const { state, describe, descriptors, navigation, NavigationContent } = useNavigationBuilder< StackNavigationState, StackRouterOptions, @@ -444,7 +331,7 @@ function V5Navigator({ screenLayout, UNSTABLE_router, }); - const StackView = nativeSheets ? V5SheetStackView : V5StackView; + const StackView = V5StackView; return ( ; } -function V5SheetStackNavigator(props: NativeStackNavigatorProps) { - return ; -} - type V5TypeBag = Omit< NativeStackTypeBag, "Navigator" @@ -478,12 +361,3 @@ export function createV5StackNavigator< >(config?: Config): TypedNavigator { return createNavigatorFactory(V5StackNavigator)(config); } - -export function createV5SheetStackNavigator< - const ParamList extends ParamListBase, - const NavigatorID extends string | undefined = string | undefined, - const TypeBag extends NavigatorTypeBagBase = V5TypeBag, - const Config extends StaticConfig = StaticConfig, ->(config?: Config): TypedNavigator { - return createNavigatorFactory(V5SheetStackNavigator)(config); -} diff --git a/apps/mobile/src/native/createV5StackNavigator.tsx b/apps/mobile/src/native/createV5StackNavigator.tsx index 2b679f91d386..44ca075614c0 100644 --- a/apps/mobile/src/native/createV5StackNavigator.tsx +++ b/apps/mobile/src/native/createV5StackNavigator.tsx @@ -1,4 +1 @@ -export { - createNativeStackNavigator as createV5StackNavigator, - createNativeStackNavigator as createV5SheetStackNavigator, -} from "@react-navigation/native-stack"; +export { createNativeStackNavigator as createV5StackNavigator } from "@react-navigation/native-stack"; diff --git a/apps/mobile/src/native/native-layout-metrics.tsx b/apps/mobile/src/native/native-layout-metrics.tsx index a2e28dc9161b..5b36280ea9d2 100644 --- a/apps/mobile/src/native/native-layout-metrics.tsx +++ b/apps/mobile/src/native/native-layout-metrics.tsx @@ -14,13 +14,40 @@ const DeviceTypeContext = createContext( // Column reservations come from UIKit's layout, outside the resizing navigator. export const NativeColumnLayoutMetricsContext = createContext(null); +// The latest metrics outside React, for decisions made before the first screen renders. +let latestMetrics: NativeLayoutMetrics | null = null; +const metricsWaiters = new Set<(metrics: NativeLayoutMetrics) => void>(); + +/** Resolves with the first native layout metrics, or null after `timeoutMs` without any. */ +export function firstNativeLayoutMetrics(timeoutMs: number) { + if (latestMetrics) return Promise.resolve(latestMetrics); + return new Promise((resolve) => { + const settle = (metrics: NativeLayoutMetrics | null) => { + metricsWaiters.delete(settle); + clearTimeout(timeout); + resolve(metrics); + }; + const timeout = setTimeout(() => settle(null), timeoutMs); + metricsWaiters.add(settle); + }); +} + +export function currentNativeLayoutMetrics() { + return latestMetrics; +} + export function NativeLayoutMetricsProvider(props: { readonly children: ReactNode }) { const [metrics, setMetrics] = useState(null); + const publish = (next: NativeLayoutMetrics) => { + latestMetrics = next; + for (const settle of [...metricsWaiters]) settle(next); + setMetrics(next); + }; const deviceType = deriveDeviceType({ isPad: IS_PAD, metrics }); return ( - + {props.children} diff --git a/apps/mobile/src/native/v5-workspace-context.tsx b/apps/mobile/src/native/v5-workspace-context.tsx index 5ecbad35c36d..af20431771a3 100644 --- a/apps/mobile/src/native/v5-workspace-context.tsx +++ b/apps/mobile/src/native/v5-workspace-context.tsx @@ -1,6 +1,27 @@ import { createContext, type ReactNode } from "react"; export const NativeWorkspaceModeContext = createContext(false); +/** + * Each workspace tab slot renders the same routes, so header options a screen sets are kept per + * slot (by route key) instead of on the shared route: a slot's header then never shows options + * another slot set, and switching tabs has nothing left to update. + */ +export interface WorkspaceSlotOptions { + readonly byRoute: ReadonlyMap; + readonly set: (routeKey: string, options: object) => void; +} +export const WorkspaceSlotOptionsContext = createContext(null); + +/** A route's options with whatever its screens set within this slot on top. */ +export function slotScreenOptions( + slot: WorkspaceSlotOptions | null, + routeKey: string | undefined, + options: Options, +): Options { + const own = routeKey === undefined ? undefined : slot?.byRoute.get(routeKey); + return own ? { ...options, ...own } : options; +} + /** Retained tabs must not update another tab's navigation options. */ export const NativeWorkspaceTabActivityContext = createContext<{ readonly active: boolean; diff --git a/apps/mobile/src/native/workspace-stack-projection.test.ts b/apps/mobile/src/native/workspace-stack-projection.test.ts index 2b562a68137d..a3c44d16fb75 100644 --- a/apps/mobile/src/native/workspace-stack-projection.test.ts +++ b/apps/mobile/src/native/workspace-stack-projection.test.ts @@ -23,7 +23,7 @@ const { StackRouter } = requireNavigation("@react-navigation/routers") as { const home = { key: "home", name: "Home" }; const thread = { key: "thread", name: "Thread", params: { threadId: "draft-thread" } }; const files = { key: "files", name: "ThreadFiles", params: thread.params }; -const settings = { key: "settings", name: "SettingsSheet" }; +const settings = { key: "settings", name: "Settings" }; const legal = { key: "legal", name: "SettingsLegal" }; function history( @@ -34,7 +34,7 @@ function history( type: "stack", stale: false, index: routes.length - 1, - routeNames: ["Home", "Thread", "ThreadFiles", "SettingsSheet", "SettingsLegal"], + routeNames: ["Home", "Thread", "ThreadFiles", "Settings", "SettingsLegal"], routes, preloadedRoutes: [], }; @@ -44,20 +44,36 @@ describe("workspace router projection", () => { it("keeps workspace flows beside Home and restores them after a modal closes", () => { const draft = { key: "draft", name: "Thread", params: { draft: {} } }; const modal = { key: "connect", name: "ConnectOnboarding" }; - const routes = [home, thread, draft, settings, legal]; + const routes = [home, thread, draft, legal]; const isOverlay = (route: { name: string }) => route.name === "ConnectOnboarding"; expect(projectWorkspaceStack(history([...routes, modal]), isOverlay)).toEqual({ primary: home, - detail: [thread, draft, settings, legal], + detail: [thread, draft, legal], overlays: [modal], }); expect(projectWorkspaceStack(history(routes), isOverlay)).toEqual({ primary: home, - detail: [thread, draft, settings, legal], + detail: [thread, draft, legal], overlays: [], }); }); + it("shows the Settings list as the primary content and its pages as the detail", () => { + const environments = { key: "environments", name: "SettingsEnvironments" }; + expect(projectWorkspaceStack(history([home, settings, environments]), () => false)).toEqual({ + primary: home, + detail: [environments], + overlays: [], + }); + }); + + it("returns from a Settings page to the Settings list that Home is showing", () => { + const environments = { key: "environments", name: "SettingsEnvironments" }; + expect( + nativeStackPopAction(history([home, settings, environments]), environments.key, home.key), + ).toMatchObject({ payload: { count: 1 } }); + }); + it("retains a cold-linked detail route without changing the router history", () => { const state = history([thread, files]); expect(projectWorkspaceStack(state, () => false)).toEqual({ @@ -330,7 +346,7 @@ describe("v5 stack handoff", () => { expect( partitionStackPresentations( [home, thread, settings, legal, secondModal], - (route) => route.name === "SettingsSheet", + (route) => route.name === "Settings", ), ).toEqual([[home, thread], [settings, legal], [secondModal]]); }); diff --git a/apps/mobile/src/native/workspace-stack-projection.ts b/apps/mobile/src/native/workspace-stack-projection.ts index 71ebec0ed9c2..341a432b66b3 100644 --- a/apps/mobile/src/native/workspace-stack-projection.ts +++ b/apps/mobile/src/native/workspace-stack-projection.ts @@ -13,7 +13,10 @@ export function projectWorkspaceStack( const firstOverlay = state.routes.findIndex(isOverlay); const workspaceRoutes = state.routes.slice(0, firstOverlay < 0 ? undefined : firstOverlay); const primary = workspaceRoutes.find((route) => route.name === "Home"); - const detail = workspaceRoutes.filter((route) => route.name !== "Home"); + // The Settings tab's route only selects what Home shows; its pages are the detail. + const detail = workspaceRoutes.filter( + (route) => route.name !== "Home" && route.name !== "Settings", + ); const overlays = firstOverlay < 0 ? [] : state.routes.slice(firstOverlay); return { primary, detail, overlays }; } @@ -50,10 +53,13 @@ export function nativeStackPopAction( destinationKey?: string, ) { const sourceIndex = state.routes.findIndex((route) => route.key === dismissedKey); - const destinationIndex = + let destinationIndex = destinationKey === undefined ? sourceIndex - 1 : state.routes.findIndex((route) => route.key === destinationKey); + // Home's screen draws the Settings list, so going back to it from a Settings page stops there. + if (destinationIndex >= 0 && state.routes[destinationIndex + 1]?.name === "Settings") + destinationIndex += 1; if ( sourceIndex <= 0 || sourceIndex > state.index || diff --git a/apps/mobile/src/persistence/mobile-preferences.ts b/apps/mobile/src/persistence/mobile-preferences.ts index a260a489d4ce..63b45aee1a10 100644 --- a/apps/mobile/src/persistence/mobile-preferences.ts +++ b/apps/mobile/src/persistence/mobile-preferences.ts @@ -47,7 +47,35 @@ const PullRequestListPreferences = Schema.Struct({ }); export type PullRequestListPreferences = typeof PullRequestListPreferences.Type; +/** + * The page each workspace tab last showed, reopened when the tab returns with columns. `key` is + * that page's route key: reopening under the same key reuses the screen a tab kept mounted. + */ +const WorkspaceSelections = Schema.Struct({ + threads: Schema.optional( + Schema.Struct({ + environmentId: Schema.String, + threadId: Schema.String, + key: Schema.optional(Schema.String), + }), + ), + pullRequests: Schema.optional( + Schema.Struct({ + environmentId: Schema.String, + projectId: Schema.String, + repository: Schema.String, + number: Schema.Number, + host: Schema.optional(Schema.String), + key: Schema.optional(Schema.String), + }), + ), + settings: Schema.optional(Schema.String), + settingsKey: Schema.optional(Schema.String), +}); +export type WorkspaceSelections = typeof WorkspaceSelections.Type; + const isThreadListFilters = Schema.is(ThreadListFilters); +const isWorkspaceSelections = Schema.is(WorkspaceSelections); const isPullRequestListPreferences = Schema.is(PullRequestListPreferences); export interface Preferences { @@ -87,6 +115,7 @@ export interface Preferences { readonly threadListWorkingShelfExpanded?: boolean; readonly threadListFilters?: ThreadListFilters; readonly pullRequestListFilters?: PullRequestListPreferences; + readonly workspaceSelections?: WorkspaceSelections; } export class MobilePreferencesLoadError extends Schema.TaggedError()( @@ -159,6 +188,7 @@ function sanitizePreferences(parsed: Preferences): Preferences { threadListWorkingShelfExpanded?: boolean; threadListFilters?: ThreadListFilters; pullRequestListFilters?: PullRequestListPreferences; + workspaceSelections?: WorkspaceSelections; } = {}; if (Array.isArray(parsed.hiddenNavigationTabs)) { @@ -298,6 +328,9 @@ function sanitizePreferences(parsed: Preferences): Preferences { if (isPullRequestListPreferences(parsed.pullRequestListFilters)) { preferences.pullRequestListFilters = parsed.pullRequestListFilters; } + if (isWorkspaceSelections(parsed.workspaceSelections)) { + preferences.workspaceSelections = parsed.workspaceSelections; + } return preferences; } diff --git a/apps/mobile/src/state/use-remote-environment-registry.ts b/apps/mobile/src/state/use-remote-environment-registry.ts index e9a8e7518ab8..472c1a266c6c 100644 --- a/apps/mobile/src/state/use-remote-environment-registry.ts +++ b/apps/mobile/src/state/use-remote-environment-registry.ts @@ -176,7 +176,7 @@ export function useRemoteConnections() { { text: "Cancel", style: "cancel" }, { text: "Open T3 Account", - onPress: () => navigation.navigate("SettingsSheet", { screen: "SettingsAuth" }), + onPress: () => navigation.navigate("SettingsAuth"), }, remove, ], From 5cf4995ce151f9b9f31811934e5ec76c2667e7a3 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:29:47 -0700 Subject: [PATCH 15/28] feat(mobile): the folded Duo opens search from a search tab below the tab bar (#24360) Co-authored-by: Claude Opus 5.5 --- .../workspace/WorkspaceNativeTabs.ios.tsx | 47 ++++++++++++++++++- .../workspace/WorkspaceToolbar.ios.tsx | 24 ++-------- .../workspace/workspace-tabs-state.ts | 11 ++++- apps/mobile/src/native/StackHeader.tsx | 2 + apps/mobile/src/native/V5StackHeader.ios.tsx | 24 ++++++---- 5 files changed, 78 insertions(+), 30 deletions(-) diff --git a/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx b/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx index 344e787d0447..bcdc835366ab 100644 --- a/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx +++ b/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx @@ -5,7 +5,12 @@ import { } from "./navigation-tabs"; import { useCallback, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from "react"; import { View, useWindowDimensions, type NativeSyntheticEvent } from "react-native"; -import { Tabs, type TabSelectedEvent, type TabSelectionRejectedEvent } from "react-native-screens"; +import { + Tabs, + type TabSelectedEvent, + type TabSelectionPreventedEvent, + type TabSelectionRejectedEvent, +} from "react-native-screens"; import { WorkspaceTabsContext, useWorkspaceTabs } from "./WorkspaceTabsContext"; import { @@ -26,6 +31,7 @@ import { useAdaptiveWorkspaceLayout } from "../layout/AdaptiveWorkspaceLayout"; import { useSelectWorkspaceTab } from "./useSelectWorkspaceTab"; const PULL_REQUEST_ICON = require("../../../assets/icons/pull-request.png"); +const SEARCH_SLOT = "search"; /** Retain each native controller tree; removing its root can leave RNS's stack empty. */ function RetainedWorkspaceTab(props: { @@ -93,6 +99,17 @@ export function WorkspaceNativeTabs(props: { const { colors } = useControlTheme(); const selectedTab = workspace.state.selectedTab; const selectedSlot = workspace.settingsOpen ? -1 : primaryTabs.indexOf(selectedTab); + // The folded Duo opens list search from a search tab UIKit sets apart below the others. + const searchTab = deviceType === "duo-folded"; + // Searching is list state: the list's toolbar mounts its field and focuses it. + const openSearch = () => { + const tab = + !workspace.settingsOpen && workspaceUsesColumns(selectedTab) ? selectedTab : "threads"; + // Back on the tab's list first: folded, a chat open on top would hide the field. + selectTab(tab); + workspace.dispatch({ type: "scroll", tab, offset: workspace.getScrollOffset(tab) }); + workspace.dispatch({ type: "search", tab }); + }; const request = useMemo( () => ({ selectedScreenKey: @@ -116,9 +133,19 @@ export function WorkspaceNativeTabs(props: { }: NativeSyntheticEvent) => setProvenance(nativeEvent.provenance) } + onTabSelectionPrevented={({ + nativeEvent, + }: NativeSyntheticEvent) => { + if (nativeEvent.preventedScreenKey === SEARCH_SLOT) openSearch(); + }} onTabSelected={({ nativeEvent }: NativeSyntheticEvent) => { setProvenance(nativeEvent.provenance); if (nativeEvent.actionOrigin === "programmatic-js") return; + // UIKit reports reselecting a tab here even when its selection is prevented. + if (nativeEvent.selectedScreenKey === SEARCH_SLOT) { + openSearch(); + return; + } const tab = workspaceTabForNativeSlot(primaryTabs, nativeEvent.selectedScreenKey); if (tab) selectTab(tab); }} @@ -156,6 +183,24 @@ export function WorkspaceNativeTabs(props: { ); })} + {searchTab ? ( + // It never becomes the selected tab; pressing it opens the current list's search. + + + + ) : null} {(deviceType === "pad" || compactTabs || diff --git a/apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx b/apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx index 17fff053258e..877c4b7e8db9 100644 --- a/apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx +++ b/apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx @@ -121,32 +121,19 @@ export function WorkspaceToolbar(props: { separateBackground /> ) : null; - const searchButton = foldedSearch ? ( - searchRef.current?.cancelSearch() : focusSearch} - separateBackground - /> - ) : null; return ( <> workspace.dispatch({ type: "expand", tab: selectedTab }), onSearchButtonPress: () => searchRef.current?.blur(), @@ -179,8 +165,6 @@ export function WorkspaceToolbar(props: { /> {/* UIKit lays trailing items out from the edge inward. */} - {searchButton} - {nativeToolbarCompose && foldedSearch ? : null} {composeButton} {selectedTab !== "threads" || isDuoDevice(deviceType) || diff --git a/apps/mobile/src/features/workspace/workspace-tabs-state.ts b/apps/mobile/src/features/workspace/workspace-tabs-state.ts index 6355796c84ef..3afbcea4f6eb 100644 --- a/apps/mobile/src/features/workspace/workspace-tabs-state.ts +++ b/apps/mobile/src/features/workspace/workspace-tabs-state.ts @@ -24,6 +24,8 @@ export interface WorkspaceTabState { readonly searchMode: WorkspaceSearchMode; readonly scrollOffset: number; readonly searchEntryOffset: number; + /** Counts requests to focus the search field; the header focuses once per request. */ + readonly searchFocusRequest: number; } export interface WorkspaceTabsState { @@ -33,7 +35,13 @@ export interface WorkspaceTabsState { } function emptyTab(): WorkspaceTabState { - return { query: "", searchMode: "resting", scrollOffset: 0, searchEntryOffset: 0 }; + return { + query: "", + searchMode: "resting", + scrollOffset: 0, + searchEntryOffset: 0, + searchFocusRequest: 0, + }; } export function initialWorkspaceTabsState(): WorkspaceTabsState { @@ -79,6 +87,7 @@ export function workspaceTabsReducer( searchMode: "active", searchEntryOffset: current.searchMode === "resting" ? current.scrollOffset : current.searchEntryOffset, + searchFocusRequest: current.searchFocusRequest + 1, }; break; case "query": diff --git a/apps/mobile/src/native/StackHeader.tsx b/apps/mobile/src/native/StackHeader.tsx index a206864d4d4e..55652b645031 100644 --- a/apps/mobile/src/native/StackHeader.tsx +++ b/apps/mobile/src/native/StackHeader.tsx @@ -34,6 +34,8 @@ export type AppNativeStackNavigationOptions = Omit< readonly unstable_headerToolbarItems?: unknown; readonly unstable_navigationItemStyle?: unknown; readonly unstable_headerMinimizationBehavior?: unknown; + /** Focuses the header search field once for each new value, as soon as the field exists. */ + readonly unstable_headerSearchFocusRequest?: number; }; function useNativeStackNavigation(): NativeStackNavigationProp | null { diff --git a/apps/mobile/src/native/V5StackHeader.ios.tsx b/apps/mobile/src/native/V5StackHeader.ios.tsx index afcb5795fce0..016298571008 100644 --- a/apps/mobile/src/native/V5StackHeader.ios.tsx +++ b/apps/mobile/src/native/V5StackHeader.ios.tsx @@ -3,7 +3,7 @@ import type { NativeStackHeaderItemMenu, NativeStackNavigationOptions, } from "@react-navigation/native-stack"; -import { isValidElement, useEffect, useRef } from "react"; +import { isValidElement, useEffect, useRef, type RefObject } from "react"; import { StyleSheet } from "react-native"; import { isDuoDevice } from "../lib/device-type"; import { useMobileNavigationTheme } from "../lib/useMobileNavigationTheme"; @@ -29,6 +29,7 @@ type ToolbarItem = type Options = NativeStackNavigationOptions & { readonly unstable_navigationItemStyle?: "editor" | "navigator"; readonly unstable_headerMinimizationBehavior?: StackHeaderMinimizationBehaviorIOS; + readonly unstable_headerSearchFocusRequest?: number; readonly headerSubtitle?: string; readonly unstable_headerSubtitle?: string; readonly headerSubtitleStyle?: { color?: string; fontSize?: number; fontFamily?: string }; @@ -243,12 +244,18 @@ export function V5StackHeader(props: { ? options.headerTitle({ children: title ?? "", tintColor: options.headerTintColor }) : undefined; const searchOptions = options.headerSearchBarOptions; - const autofocusRef = searchOptions?.ref ?? searchRef; - useEffect(() => { - if (!searchOptions?.autoFocus) return; - const frame = requestAnimationFrame(() => autofocusRef.current?.focus()); - return () => cancelAnimationFrame(frame); - }, [searchOptions?.autoFocus, autofocusRef]); + const searchBarRef = searchOptions?.ref ?? searchRef; + const focusRequest = options.unstable_headerSearchFocusRequest; + const focusedRequest = useRef(undefined); + // The field can attach a render after the request, since it mounts through these options, and + // Screens re-attaches its commands on every render; so focus once per request, on attach. + const attachSearchBar = (instance: SearchBarCommands | null) => { + searchBarRef.current = instance; + if (instance && focusRequest !== undefined && focusedRequest.current !== focusRequest) { + focusedRequest.current = focusRequest; + instance.focus(); + } + }; const titleStyle = StyleSheet.flatten(options.headerTitleStyle); const headerStyle = StyleSheet.flatten(options.headerStyle); const appearance = { @@ -288,7 +295,8 @@ export function V5StackHeader(props: { mailSearch || searchOptions ? ( } hideNavigationBar={false} hideWhenScrolling={false} allowToolbarIntegration={searchOptions?.allowToolbarIntegration ?? true} From 95ffbc90287f5b1a3bd6ca2e78fabfe1da7af809 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:34:21 -0700 Subject: [PATCH 16/28] revert(mobile): take the folded Duo search tab back out for now (#24626) Co-authored-by: Claude Opus 5.5 --- .../workspace/WorkspaceNativeTabs.ios.tsx | 47 +------------------ .../workspace/WorkspaceToolbar.ios.tsx | 24 ++++++++-- .../workspace/workspace-tabs-state.ts | 11 +---- apps/mobile/src/native/StackHeader.tsx | 2 - apps/mobile/src/native/V5StackHeader.ios.tsx | 24 ++++------ 5 files changed, 30 insertions(+), 78 deletions(-) diff --git a/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx b/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx index bcdc835366ab..344e787d0447 100644 --- a/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx +++ b/apps/mobile/src/features/workspace/WorkspaceNativeTabs.ios.tsx @@ -5,12 +5,7 @@ import { } from "./navigation-tabs"; import { useCallback, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from "react"; import { View, useWindowDimensions, type NativeSyntheticEvent } from "react-native"; -import { - Tabs, - type TabSelectedEvent, - type TabSelectionPreventedEvent, - type TabSelectionRejectedEvent, -} from "react-native-screens"; +import { Tabs, type TabSelectedEvent, type TabSelectionRejectedEvent } from "react-native-screens"; import { WorkspaceTabsContext, useWorkspaceTabs } from "./WorkspaceTabsContext"; import { @@ -31,7 +26,6 @@ import { useAdaptiveWorkspaceLayout } from "../layout/AdaptiveWorkspaceLayout"; import { useSelectWorkspaceTab } from "./useSelectWorkspaceTab"; const PULL_REQUEST_ICON = require("../../../assets/icons/pull-request.png"); -const SEARCH_SLOT = "search"; /** Retain each native controller tree; removing its root can leave RNS's stack empty. */ function RetainedWorkspaceTab(props: { @@ -99,17 +93,6 @@ export function WorkspaceNativeTabs(props: { const { colors } = useControlTheme(); const selectedTab = workspace.state.selectedTab; const selectedSlot = workspace.settingsOpen ? -1 : primaryTabs.indexOf(selectedTab); - // The folded Duo opens list search from a search tab UIKit sets apart below the others. - const searchTab = deviceType === "duo-folded"; - // Searching is list state: the list's toolbar mounts its field and focuses it. - const openSearch = () => { - const tab = - !workspace.settingsOpen && workspaceUsesColumns(selectedTab) ? selectedTab : "threads"; - // Back on the tab's list first: folded, a chat open on top would hide the field. - selectTab(tab); - workspace.dispatch({ type: "scroll", tab, offset: workspace.getScrollOffset(tab) }); - workspace.dispatch({ type: "search", tab }); - }; const request = useMemo( () => ({ selectedScreenKey: @@ -133,19 +116,9 @@ export function WorkspaceNativeTabs(props: { }: NativeSyntheticEvent) => setProvenance(nativeEvent.provenance) } - onTabSelectionPrevented={({ - nativeEvent, - }: NativeSyntheticEvent) => { - if (nativeEvent.preventedScreenKey === SEARCH_SLOT) openSearch(); - }} onTabSelected={({ nativeEvent }: NativeSyntheticEvent) => { setProvenance(nativeEvent.provenance); if (nativeEvent.actionOrigin === "programmatic-js") return; - // UIKit reports reselecting a tab here even when its selection is prevented. - if (nativeEvent.selectedScreenKey === SEARCH_SLOT) { - openSearch(); - return; - } const tab = workspaceTabForNativeSlot(primaryTabs, nativeEvent.selectedScreenKey); if (tab) selectTab(tab); }} @@ -183,24 +156,6 @@ export function WorkspaceNativeTabs(props: { ); })} - {searchTab ? ( - // It never becomes the selected tab; pressing it opens the current list's search. - - - - ) : null} {(deviceType === "pad" || compactTabs || diff --git a/apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx b/apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx index 877c4b7e8db9..17fff053258e 100644 --- a/apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx +++ b/apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx @@ -121,19 +121,32 @@ export function WorkspaceToolbar(props: { separateBackground /> ) : null; + const searchButton = foldedSearch ? ( + searchRef.current?.cancelSearch() : focusSearch} + separateBackground + /> + ) : null; return ( <> workspace.dispatch({ type: "expand", tab: selectedTab }), onSearchButtonPress: () => searchRef.current?.blur(), @@ -165,6 +179,8 @@ export function WorkspaceToolbar(props: { /> {/* UIKit lays trailing items out from the edge inward. */} + {searchButton} + {nativeToolbarCompose && foldedSearch ? : null} {composeButton} {selectedTab !== "threads" || isDuoDevice(deviceType) || diff --git a/apps/mobile/src/features/workspace/workspace-tabs-state.ts b/apps/mobile/src/features/workspace/workspace-tabs-state.ts index 3afbcea4f6eb..6355796c84ef 100644 --- a/apps/mobile/src/features/workspace/workspace-tabs-state.ts +++ b/apps/mobile/src/features/workspace/workspace-tabs-state.ts @@ -24,8 +24,6 @@ export interface WorkspaceTabState { readonly searchMode: WorkspaceSearchMode; readonly scrollOffset: number; readonly searchEntryOffset: number; - /** Counts requests to focus the search field; the header focuses once per request. */ - readonly searchFocusRequest: number; } export interface WorkspaceTabsState { @@ -35,13 +33,7 @@ export interface WorkspaceTabsState { } function emptyTab(): WorkspaceTabState { - return { - query: "", - searchMode: "resting", - scrollOffset: 0, - searchEntryOffset: 0, - searchFocusRequest: 0, - }; + return { query: "", searchMode: "resting", scrollOffset: 0, searchEntryOffset: 0 }; } export function initialWorkspaceTabsState(): WorkspaceTabsState { @@ -87,7 +79,6 @@ export function workspaceTabsReducer( searchMode: "active", searchEntryOffset: current.searchMode === "resting" ? current.scrollOffset : current.searchEntryOffset, - searchFocusRequest: current.searchFocusRequest + 1, }; break; case "query": diff --git a/apps/mobile/src/native/StackHeader.tsx b/apps/mobile/src/native/StackHeader.tsx index 55652b645031..a206864d4d4e 100644 --- a/apps/mobile/src/native/StackHeader.tsx +++ b/apps/mobile/src/native/StackHeader.tsx @@ -34,8 +34,6 @@ export type AppNativeStackNavigationOptions = Omit< readonly unstable_headerToolbarItems?: unknown; readonly unstable_navigationItemStyle?: unknown; readonly unstable_headerMinimizationBehavior?: unknown; - /** Focuses the header search field once for each new value, as soon as the field exists. */ - readonly unstable_headerSearchFocusRequest?: number; }; function useNativeStackNavigation(): NativeStackNavigationProp | null { diff --git a/apps/mobile/src/native/V5StackHeader.ios.tsx b/apps/mobile/src/native/V5StackHeader.ios.tsx index 016298571008..afcb5795fce0 100644 --- a/apps/mobile/src/native/V5StackHeader.ios.tsx +++ b/apps/mobile/src/native/V5StackHeader.ios.tsx @@ -3,7 +3,7 @@ import type { NativeStackHeaderItemMenu, NativeStackNavigationOptions, } from "@react-navigation/native-stack"; -import { isValidElement, useEffect, useRef, type RefObject } from "react"; +import { isValidElement, useEffect, useRef } from "react"; import { StyleSheet } from "react-native"; import { isDuoDevice } from "../lib/device-type"; import { useMobileNavigationTheme } from "../lib/useMobileNavigationTheme"; @@ -29,7 +29,6 @@ type ToolbarItem = type Options = NativeStackNavigationOptions & { readonly unstable_navigationItemStyle?: "editor" | "navigator"; readonly unstable_headerMinimizationBehavior?: StackHeaderMinimizationBehaviorIOS; - readonly unstable_headerSearchFocusRequest?: number; readonly headerSubtitle?: string; readonly unstable_headerSubtitle?: string; readonly headerSubtitleStyle?: { color?: string; fontSize?: number; fontFamily?: string }; @@ -244,18 +243,12 @@ export function V5StackHeader(props: { ? options.headerTitle({ children: title ?? "", tintColor: options.headerTintColor }) : undefined; const searchOptions = options.headerSearchBarOptions; - const searchBarRef = searchOptions?.ref ?? searchRef; - const focusRequest = options.unstable_headerSearchFocusRequest; - const focusedRequest = useRef(undefined); - // The field can attach a render after the request, since it mounts through these options, and - // Screens re-attaches its commands on every render; so focus once per request, on attach. - const attachSearchBar = (instance: SearchBarCommands | null) => { - searchBarRef.current = instance; - if (instance && focusRequest !== undefined && focusedRequest.current !== focusRequest) { - focusedRequest.current = focusRequest; - instance.focus(); - } - }; + const autofocusRef = searchOptions?.ref ?? searchRef; + useEffect(() => { + if (!searchOptions?.autoFocus) return; + const frame = requestAnimationFrame(() => autofocusRef.current?.focus()); + return () => cancelAnimationFrame(frame); + }, [searchOptions?.autoFocus, autofocusRef]); const titleStyle = StyleSheet.flatten(options.headerTitleStyle); const headerStyle = StyleSheet.flatten(options.headerStyle); const appearance = { @@ -295,8 +288,7 @@ export function V5StackHeader(props: { mailSearch || searchOptions ? ( } + ref={searchOptions?.ref ?? searchRef} hideNavigationBar={false} hideWhenScrolling={false} allowToolbarIntegration={searchOptions?.allowToolbarIntegration ?? true} From 27805ef76e4f852fa86be4f93df142dabc71c32a Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:36:06 -0700 Subject: [PATCH 17/28] fix(web): preview images outside the workspace (#24627) Co-authored-by: Claude Opus 5.5 --- .../src/components/files/FilePreviewPanel.test.ts | 15 +++++++++++++++ .../web/src/components/files/FilePreviewPanel.tsx | 4 +--- apps/web/src/components/files/filePreviewMode.ts | 14 +++++++++++++- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/apps/web/src/components/files/FilePreviewPanel.test.ts b/apps/web/src/components/files/FilePreviewPanel.test.ts index e8aee4c3ecb0..ec543e006a89 100644 --- a/apps/web/src/components/files/FilePreviewPanel.test.ts +++ b/apps/web/src/components/files/FilePreviewPanel.test.ts @@ -110,11 +110,26 @@ describe("workspaceAssetResource", () => { absolutePath: "/repo/docs/index.html", }; + // regression: #21067 images outside the workspace load through the host media resource + it("serves a file outside the workspace as host media and keeps workspace files on workspace access", () => { + expect( + workspaceAssetResource({ ...input, absolutePath: "/tmp/screenshots/shot.png", draft: false }), + ).toEqual({ _tag: "media-file", threadId: "thread-1", path: "/tmp/screenshots/shot.png" }); + expect(workspaceAssetResource({ ...input, draft: false })).toEqual({ + _tag: "workspace-file", + threadId: "thread-1", + path: "/repo/docs/index.html", + }); + }); + it("names the workspace root for a draft, which the server cannot resolve from a thread", () => { expect(workspaceAssetResource({ ...input, draft: true })).toEqual({ _tag: "draft-workspace-file", cwd: "/repo", path: "/repo/docs/index.html", }); + expect( + workspaceAssetResource({ ...input, absolutePath: "/tmp/screenshots/shot.png", draft: true }), + ).toEqual({ _tag: "draft-workspace-file", cwd: "/repo", path: "/tmp/screenshots/shot.png" }); }); }); diff --git a/apps/web/src/components/files/FilePreviewPanel.tsx b/apps/web/src/components/files/FilePreviewPanel.tsx index a0ba43b931ca..29f7b9c1db60 100644 --- a/apps/web/src/components/files/FilePreviewPanel.tsx +++ b/apps/web/src/components/files/FilePreviewPanel.tsx @@ -225,10 +225,8 @@ function WorkspaceBrowserPreview(props: { readonly title: string; readonly workspaceMutationId: string | null; }) { - const insideWorkspace = - mediaFileReference(props.absolutePath, props.workspaceRoot).relativePath !== undefined; const resource = workspaceAssetResource({ - kind: insideWorkspace ? "workspace-file" : "media-file", + kind: "workspace-file", threadRef: props.threadRef, draft: props.draft, workspaceRoot: props.workspaceRoot, diff --git a/apps/web/src/components/files/filePreviewMode.ts b/apps/web/src/components/files/filePreviewMode.ts index db39d06d2ee4..bc6b0cd20403 100644 --- a/apps/web/src/components/files/filePreviewMode.ts +++ b/apps/web/src/components/files/filePreviewMode.ts @@ -1,4 +1,5 @@ import type { AssetResource, ProjectReadFileError, ScopedThreadRef } from "@t3tools/contracts"; +import { mediaFileReference } from "@t3tools/client-runtime/media-reference"; import { isHostPath, workspaceRelativeFilePath } from "@t3tools/shared/path"; export function resolveFilePreviewPath(path: string | null, cwd: string): string | null { @@ -55,6 +56,11 @@ export function setMarkdownTaskChecked( return `${markdown.slice(0, markerOffset + 1)}${checked ? "x" : " "}${markdown.slice(markerOffset + 2)}`; } +/** + * The server only signs `workspace-file` assets below the workspace root, so a + * file opened from outside it, such as an absolute link in the thread, goes + * through the host `media-file` resource the direct media viewer uses. + */ export function workspaceAssetResource(input: { readonly kind: "workspace-file" | "media-file"; readonly threadRef: ScopedThreadRef; @@ -65,5 +71,11 @@ export function workspaceAssetResource(input: { if (input.draft) { return { _tag: "draft-workspace-file", cwd: input.workspaceRoot, path: input.absolutePath }; } - return { _tag: input.kind, threadId: input.threadRef.threadId, path: input.absolutePath }; + const insideWorkspace = + mediaFileReference(input.absolutePath, input.workspaceRoot).relativePath !== undefined; + return { + _tag: insideWorkspace ? input.kind : "media-file", + threadId: input.threadRef.threadId, + path: input.absolutePath, + }; } From 91ea0e18ebe2db81752bad7f0d4fa70a66d7562b Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Sat, 24 Oct 2026 17:36:51 -0700 Subject: [PATCH 18/28] fix(threads): Working holds only background work the agent waits on (#24610) Co-authored-by: lovelycodemonkey Co-authored-by: Claude Opus 5.5 --- .../src/features/threads/threadListV2.test.ts | 11 +- .../src/mcp/toolkits/orchestrator/handlers.ts | 21 +++ .../src/mcp/toolkits/orchestrator/tools.ts | 21 +++ .../Adapters/ClaudeAdapterV2.test.ts | 136 ++++++++++++++++++ .../Adapters/ClaudeAdapterV2.ts | 135 ++++++++++++++--- .../DelegatedCompletionDelivery.test.ts | 2 +- .../orchestration-v2/ProjectionStore.test.ts | 5 +- .../RestartBackgroundNote.test.ts | 7 + .../orchestration-v2/RestartBackgroundNote.ts | 10 +- .../RestartContinuation.test.ts | 4 +- .../ThreadManagementService.test.ts | 104 ++++++++++++++ .../ThreadManagementService.ts | 78 ++++++++++ .../src/orchestration-v2/runtimeLayer.test.ts | 19 ++- .../src/relay/AgentAwarenessRelay.test.ts | 5 +- apps/web/src/components/Sidebar.logic.test.ts | 41 +++++- docs/internals/server-updates.md | 9 +- docs/user/thread-sidebar.md | 14 +- docs/user/updating.md | 7 +- .../client-runtime/src/state/entities.test.ts | 20 ++- packages/client-runtime/src/state/models.ts | 8 +- packages/client-runtime/src/t3ToolSummary.ts | 3 + .../src/work-log/presentation.ts | 1 + packages/contracts/src/orchestrationV2.ts | 7 + .../src/server/ProviderAdapter.ts | 9 ++ packages/shared/src/agentAwareness.test.ts | 11 +- ...chestrationV2PendingBackgroundWork.test.ts | 16 ++- .../orchestrationV2PendingBackgroundWork.ts | 11 +- packages/shared/src/t3McpToolPresentation.ts | 5 + 28 files changed, 641 insertions(+), 79 deletions(-) diff --git a/apps/mobile/src/features/threads/threadListV2.test.ts b/apps/mobile/src/features/threads/threadListV2.test.ts index 2c150561fde6..a5fc77b2c6fe 100644 --- a/apps/mobile/src/features/threads/threadListV2.test.ts +++ b/apps/mobile/src/features/threads/threadListV2.test.ts @@ -101,11 +101,12 @@ describe("resolveThreadListV2Status", () => { }); it.each([ - { kind: "command", status: "ready" }, - { kind: "monitor", status: "waiting" }, + { roster: "dev server", task: { kind: "command" }, status: "ready" }, + { roster: "dev server watchdog", task: { kind: "monitor" }, status: "ready" }, + { roster: "awaited command", task: { kind: "command", awaited: true }, status: "waiting" }, ] as const)( - "presents an unseen completion with a $kind roster as $status", - ({ kind, status }) => { + "presents an unseen completion with a $roster roster as $status", + ({ task, status }) => { const thread = presentThreadShell( environmentId, makeRawThreadShell({ @@ -113,7 +114,7 @@ describe("resolveThreadListV2Status", () => { status: "completed", latestRunCompletedAt: DateTime.makeUnsafe(NOW), lastVisitedAt: DateTime.makeUnsafe("2026-06-01T23:59:00.000Z"), - pendingBackgroundTasks: [{ taskId: "background-work", kind }], + pendingBackgroundTasks: [{ taskId: "background-work", ...task }], }), ); diff --git a/apps/server/src/mcp/toolkits/orchestrator/handlers.ts b/apps/server/src/mcp/toolkits/orchestrator/handlers.ts index 0df604a85011..a6f9a1302c67 100644 --- a/apps/server/src/mcp/toolkits/orchestrator/handlers.ts +++ b/apps/server/src/mcp/toolkits/orchestrator/handlers.ts @@ -57,6 +57,27 @@ const handlers = { ); }), ), + t3_background_wait: McpToolAccess.actsAsCaller((input) => + Effect.gen(function* () { + const { scope, threads } = yield* readCaller(); + const caller = yield* McpInvocationContext.requireThreadScope(scope, "t3_background_wait"); + return yield* threads + .awaitBackgroundTasks({ + threadId: caller.thread.threadId, + taskIds: input.taskIds, + awaited: input.waiting ?? true, + }) + .pipe( + Effect.mapError( + (cause) => + new OrchestratorMcpFailure({ + code: cause.reason === "unsupported" ? "invalid_request" : "orchestration_error", + message: cause.message, + }), + ), + ); + }), + ), schedule_task: McpToolAccess.startsThreads( () => ({}), (input) => diff --git a/apps/server/src/mcp/toolkits/orchestrator/tools.ts b/apps/server/src/mcp/toolkits/orchestrator/tools.ts index 6b89fb2dffc3..0aa0b430b7c7 100644 --- a/apps/server/src/mcp/toolkits/orchestrator/tools.ts +++ b/apps/server/src/mcp/toolkits/orchestrator/tools.ts @@ -31,6 +31,7 @@ import { OrchestratorMcpThreadWaitResult, ThreadMetadataMcpUpdateInput, ThreadMetadataMcpUpdateResult, + TrimmedNonEmptyString, } from "@t3tools/contracts"; import { Tool, Toolkit } from "effect/ai"; import * as Schema from "effect/Schema"; @@ -116,6 +117,25 @@ const WorkflowStopTool = Tool.make("t3_workflow_stop", { .annotate(Tool.Title, "Stop a workflow") .annotate(Tool.Destructive, true); +const BackgroundWaitTool = Tool.make("t3_background_wait", { + description: + "Keep this thread in the user's Working list and out of their inbox while you wait for background work. Start a background command or Monitor first. Call this before you end your turn if you will act on its result when it wakes you. In taskIds, give the ID shown when the task started. The thread stays in Working until the task ends. The user is not told the work is done. Do not mark work you leave running, such as a dev server or watcher. Unmarked commands and monitors never keep the thread in Working. Pass waiting=false to remove the mark. This does not stop the task. IDs that are not running return in unmatched and change nothing. Only Claude threads support this tool. Other providers return an error.", + parameters: Schema.Struct({ + taskIds: Schema.Array(TrimmedNonEmptyString).check( + Schema.isMinLength(1), + Schema.isMaxLength(20), + ), + waiting: Schema.optional(Schema.Boolean), + }), + success: Schema.Struct({ + matched: Schema.Array(Schema.String), + unmatched: Schema.Array(Schema.String), + }), + failure: OrchestratorMcpFailure, + failureMode: "return", + dependencies, +}).annotate(Tool.Title, "Wait on background work"); + const ScheduleTaskTool = Tool.make("schedule_task", { description: "Create persistent work in the app scheduler that runs even when no turn is active. Pass schedule as a STRUCTURED OBJECT, never JSON text. Timers: {type:'interval', everyMs:3600000} is hourly; {type:'fixed_time', timeOfDay:'09:00', weekdays:[1,2,3,4,5]} is weekday mornings; report the returned nextRunAt. Webhook dedupe accepts replayKey and coalesceKey templates with coalesceWindowSeconds (10–3600, default 120); replay keys expire after 7 days and coalescing keeps the latest payload in a window measured from its first delivery. Webhooks: {type:'webhook'} runs once per request to a generated URL. The run sees the request ONLY through prompt placeholders: {{body.path}} (e.g. {{body.action}}, {{body.release.tag_name}}), {{headers.name}}, {{query.name}}, {{body}}, or {{request}} (method, headers with credentials redacted, and body). Each value arrives framed as untrusted request data, and $skill, @file or /command mentions inside it do not act; without a signature, anyone with the URL can trigger a run. For a sender that signs requests, first call request_secret so the user enters the secret privately (never ask for it in chat or invent one), then set signature with the returned secretRef, e.g. GitHub: {type:'webhook', signature:{header:'x-hub-signature-256', encoding:'hex', prefix:'sha256=', secretRef}}. To run only for some requests, add filters, all of which must match, e.g. filters:[{path:'headers.x-github-event', op:'equals', value:'pull_request'}, {path:'body.action', op:'in', value:['opened','reopened']}]; ops are equals, notEquals, in, startsWith and exists. A path segment ending in [] fans out over an array: {path:'body.issue.labels[].name', op:'equals', value:'needs more info'} matches when any label has that name, and notEquals only when none does. The result's webhookUrl is the public URL to give the user; if it is absent, this environment has no T3 Connect managed tunnel, so tell the user to enable T3 Connect remote access rather than sharing a path. Omit projectId for this thread's project. In this thread's project, runs post into THIS thread by default (bindToCurrentThread=true), which suits an orchestrator that sees every trigger, delegates work, and can dedupe against what is in flight; use false only when the user wants a fresh top-level thread per run. Elsewhere each run launches a fresh thread. Provider, model, and runtime settings inherit from this thread, or from the project default when there is no calling thread.", @@ -279,6 +299,7 @@ export const OrchestratorToolkit = Toolkit.make( TaskStatusTool, TaskCancelTool, WorkflowStopTool, + BackgroundWaitTool, ScheduleTaskTool, ListScheduledTasksTool, UpdateScheduledTaskTool, diff --git a/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts index 0b6232479c40..1128b77eab14 100644 --- a/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts @@ -35,6 +35,7 @@ import { type ModelSelection, NodeId, type OrchestrationV2AppThread, + type OrchestrationV2PendingBackgroundTask, type OrchestrationV2ProviderThread, ProjectId, ProviderInstanceId, @@ -565,6 +566,7 @@ describe("ClaudeAdapterV2 native protocol logging", () => { assert.equal(systemPrompt.type, "preset"); assert.equal(systemPrompt.preset, "claude_code"); assert.include(systemPrompt.append ?? "", "Use `delegate_task`"); + assert.include(systemPrompt.append ?? "", "call `t3_background_wait`"); const logged = ClaudeAdapterV2.loggedClaudeQueryOptions(options); assert.equal(logged.hasMcpServers, true); assert.notInclude(JSON.stringify(logged), "secret-claude-token"); @@ -2202,6 +2204,10 @@ describe("ClaudeAdapterV2 background wake turns", () => { yield* Queue.unbounded< Extract >(); + const providerThreadReceipts = + yield* Queue.unbounded< + Extract + >(); let openedOptions: ClaudeAdapterV2.ClaudeAgentSdkQueryOptions | undefined; const adapter = yield* ClaudeAdapterV2.makeClaudeAdapterV2({ instanceId: ClaudeAdapterV2.CLAUDE_DEFAULT_INSTANCE_ID, @@ -2329,6 +2335,9 @@ describe("ClaudeAdapterV2 background wake turns", () => { if (event.type === "plan.updated") { yield* Queue.offer(planReceipts, event); } + if (event.type === "provider_thread.updated") { + yield* Queue.offer(providerThreadReceipts, event); + } if (event.type === "turn_item.updated" && event.turnItem.type === "system_notice") { yield* Queue.offer(systemNoticeReceipts, event); } @@ -2372,6 +2381,7 @@ describe("ClaudeAdapterV2 background wake turns", () => { systemNoticeReceipts, runtimeRequestReceipts, planReceipts, + providerThreadReceipts, getOpenedOptions: () => openedOptions, terminalEvents, hasPendingBackgroundWork, @@ -6425,6 +6435,132 @@ describe("ClaudeAdapterV2 background wake turns", () => { ), ); + it.effect("holds only the background tasks the agent marks awaited, until they end", () => + Effect.scoped( + Effect.gen(function* () { + const harness = yield* makeWakeHarness; + const now = yield* DateTime.now; + const awaitBackgroundTasks = harness.runtime.awaitBackgroundTasks; + if (awaitBackgroundTasks === undefined) { + throw new Error("Claude adapter runtime must expose awaitBackgroundTasks."); + } + const roster = (tasks: ReadonlyArray, uuid: string) => + claudeSdkFrame({ + type: "system", + subtype: "background_tasks_changed", + tasks: tasks.map((taskId) => ({ + task_id: taskId, + task_type: "local_bash", + description: taskId, + })), + uuid, + session_id: WAKE_NATIVE_SESSION, + }); + const nextRoster = Effect.fn("nextRoster")(function* ( + matches: (tasks: ReadonlyArray) => boolean, + ) { + while (true) { + const { providerThread } = yield* Queue.take(harness.providerThreadReceipts); + const tasks = providerThread.pendingBackgroundTasks ?? []; + if (matches(tasks)) return tasks; + } + }); + const marks = (tasks: ReadonlyArray) => + tasks.map((task) => [task.taskId, task.awaited === true]); + + yield* harness.runtime.startTurn( + makeClaudeTestTurnInput({ + threadId: harness.threadId, + providerThread: harness.providerThread, + now, + attemptId: RunAttemptId.make("attempt-claude-awaited-roster"), + text: "Run the tests in the background and the dev server.", + attachments: [], + }), + ); + yield* Queue.offer( + harness.sdkMessages, + roster([WAKE_TASK_ID, "dev-server"], "00000000-0000-4000-8000-000000000301"), + ); + yield* nextRoster((tasks) => tasks.length === 2); + + const marked = yield* awaitBackgroundTasks({ + providerThread: harness.providerThread, + taskIds: [WAKE_TASK_ID, "already-finished"], + awaited: true, + }); + assert.deepStrictEqual(marked.matched, [WAKE_TASK_ID]); + assert.deepStrictEqual( + marks(yield* nextRoster((tasks) => tasks.some((task) => task.awaited === true))), + [ + [WAKE_TASK_ID, true], + ["dev-server", false], + ], + ); + yield* Queue.offer(harness.sdkMessages, turnOneResult); + yield* Queue.take(harness.terminalReceipts); + + // A replacing level rebuilds every entry; the mark must survive it. + yield* Queue.offer( + harness.sdkMessages, + roster(["dev-server", WAKE_TASK_ID], "00000000-0000-4000-8000-000000000302"), + ); + assert.deepStrictEqual( + marks(yield* nextRoster((tasks) => tasks[0]?.taskId === "dev-server")), + [ + ["dev-server", false], + [WAKE_TASK_ID, true], + ], + ); + + // Once the task leaves the roster, a reused id starts unmarked. + yield* Queue.offer( + harness.sdkMessages, + roster(["dev-server"], "00000000-0000-4000-8000-000000000303"), + ); + yield* nextRoster((tasks) => tasks.length === 1); + yield* Queue.offer( + harness.sdkMessages, + roster(["dev-server", WAKE_TASK_ID], "00000000-0000-4000-8000-000000000304"), + ); + assert.deepStrictEqual(marks(yield* nextRoster((tasks) => tasks.length === 2)), [ + ["dev-server", false], + [WAKE_TASK_ID, false], + ]); + + yield* awaitBackgroundTasks({ + providerThread: harness.providerThread, + taskIds: ["dev-server"], + awaited: true, + }); + assert.deepStrictEqual( + marks(yield* nextRoster((tasks) => tasks.some((task) => task.awaited === true))), + [ + ["dev-server", true], + [WAKE_TASK_ID, false], + ], + ); + const released = yield* awaitBackgroundTasks({ + providerThread: harness.providerThread, + taskIds: ["dev-server"], + awaited: false, + }); + assert.deepStrictEqual(released.matched, ["dev-server"]); + assert.deepStrictEqual( + marks(yield* nextRoster((tasks) => !tasks.some((task) => task.awaited === true))), + [ + ["dev-server", false], + [WAKE_TASK_ID, false], + ], + ); + }).pipe( + Effect.provide( + Layer.mergeAll(IdAllocator.layer, McpProviderSessions.layer, NodeServices.layer), + ), + ), + ), + ); + it.effect("keeps a running Claude monitor typed after many newer monitors end", () => Effect.scoped( Effect.gen(function* () { diff --git a/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts b/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts index 792195ebfa80..032492ba82c1 100644 --- a/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts +++ b/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts @@ -1296,6 +1296,15 @@ export function claudeQueryEnvironment( return { ...environment, CLAUDE_CODE_PROMPT_CACHE_TTL: subagentPromptCacheTtl }; } +// Claude Code defers MCP tools behind ToolSearch, so the agent only finds +// t3_background_wait when the system prompt says when to reach for it. +const CLAUDE_BACKGROUND_WAIT_INSTRUCTIONS = ` + +### Background work you wait on + +Before you end your turn to wait for a background command or Monitor you started, such as tests, a build, or a CI wait, call \`t3_background_wait\` with its task ID. The thread then stays in the user's Working list until that task ends, instead of returning to them early. Do not mark a dev server, a watcher, or anything else you leave running. +`; + export function makeClaudeQueryOptions(input: { readonly modelSelection: ModelSelection; readonly nativeThreadId: string; @@ -1409,7 +1418,9 @@ export function makeClaudeQueryOptions(input: { preset: "claude_code" as const, append: [ buildRuntimeInstructions({ harness: "Claude Code" }) + - (input.mcpServers === undefined ? "" : T3_CODE_ORCHESTRATION_INSTRUCTIONS), + (input.mcpServers === undefined + ? "" + : T3_CODE_ORCHESTRATION_INSTRUCTIONS + CLAUDE_BACKGROUND_WAIT_INSTRUCTIONS), ...launchAppendSystemPrompt, ].join("\n\n"), }, @@ -2453,8 +2464,11 @@ function isClaudeRootTurnFrame(message: SDKMessage): boolean { function claudePendingBackgroundTasksFromRoster( roster: ReadonlyMap, + awaitedTaskIds: ReadonlySet, ): ReadonlyArray { - return Array.from(roster.values()); + return Array.from(roster.values(), (task) => + awaitedTaskIds.has(task.taskId) ? { ...task, awaited: true as const } : task, + ); } function parseClaudeBackgroundTaskEntry( @@ -4137,6 +4151,10 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( const pendingBackgroundTasksByNativeThread = yield* Ref.make( new Map>(), ); + // Survives roster REPLACE levels, which rebuild every entry without the agent's mark. + const awaitedBackgroundTasksByNativeThread = yield* Ref.make( + new Map>(), + ); // Wake eligibility is separate from the Waiting roster. It survives empty // background_tasks_changed levels (SDK: empty level can precede task_notification) and // is consumed when the first idle notification is buffered/offered so duplicates cannot @@ -4570,12 +4588,16 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( yield* Ref.get(pendingBackgroundTasksByNativeThread), input.nativeThreadId, ); + const awaitedTaskIds = taskIdSetForNativeThread( + yield* Ref.get(awaitedBackgroundTasksByNativeThread), + input.nativeThreadId, + ); const now = yield* DateTime.now; const providerThread: OrchestrationV2ProviderThread = { ...input.providerThread, providerSessionId: session.id, ...(input.status === undefined ? {} : { status: input.status }), - pendingBackgroundTasks: claudePendingBackgroundTasksFromRoster(roster), + pendingBackgroundTasks: claudePendingBackgroundTasksFromRoster(roster, awaitedTaskIds), ...(goalsByNativeThread.has(input.nativeThreadId) ? { goal: goalsByNativeThread.get(input.nativeThreadId) ?? null } : {}), @@ -4657,6 +4679,17 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( tasks.map((task) => task.taskId), ); } + const listed = new Set(tasks.map((task) => task.taskId)); + yield* Ref.update(awaitedBackgroundTasksByNativeThread, (current) => { + const awaited = current.get(nativeThreadId); + if (awaited === undefined) return current; + const kept = new Set([...awaited].filter((taskId) => listed.has(taskId))); + if (kept.size === awaited.size) return current; + const updated = new Map(current); + if (kept.size === 0) updated.delete(nativeThreadId); + else updated.set(nativeThreadId, kept); + return updated; + }); }); const upsertPendingBackgroundTask = @@ -4689,7 +4722,15 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( updated.set(nativeThreadId, nextRoster); } return [true, updated] as const; - }); + }).pipe( + Effect.tap(() => + clearTaskIdFromNativeThreadSet( + awaitedBackgroundTasksByNativeThread, + nativeThreadId, + taskId, + ), + ), + ); const clearPendingBackgroundTasksForNativeThread = /* Provider events include streaming deltas; avoid a span for each update. */ @@ -4702,6 +4743,7 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( updated.delete(nativeThreadId); return updated; }); + yield* clearNativeThreadTaskIdSet(awaitedBackgroundTasksByNativeThread, nativeThreadId); yield* endClaudeMonitorTasks((_taskId, task) => task.nativeThreadId === nativeThreadId); }); @@ -6858,6 +6900,13 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( yield* Ref.get(pendingBackgroundTasksByNativeThread), nativeThreadId, ); + const awaitedTaskIds = + nativeThreadId === null + ? new Set() + : taskIdSetForNativeThread( + yield* Ref.get(awaitedBackgroundTasksByNativeThread), + nativeThreadId, + ); const clearConversationHead = input.status === "completed" && input.context.input.providerThread.nativeConversationHeadRef !== null; @@ -6895,7 +6944,10 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( input.context.input.providerThread.firstRunOrdinal ?? input.context.input.runOrdinal, lastRunOrdinal: input.context.input.runOrdinal, - pendingBackgroundTasks: claudePendingBackgroundTasksFromRoster(roster), + pendingBackgroundTasks: claudePendingBackgroundTasksFromRoster( + roster, + awaitedTaskIds, + ), status: input.status === "completed" ? "active" : "idle", updatedAt: input.completedAt, }; @@ -7282,6 +7334,26 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( }); }); + // Untraced like the roster message handling: it runs for every streamed roster change. + const emitRosterUpdate = Effect.fnUntraced(function* ( + nativeThreadId: string, + activeContext: ActiveClaudeTurnContext | null, + ) { + const baseThread = + activeContext?.input.providerThread ?? + (yield* Ref.get(lastProviderThreadByNativeThread)).get(nativeThreadId); + if (baseThread === undefined) { + return; + } + const status = + activeContext === null + ? ("idle" as const) + : baseThread.status === "idle" + ? ("active" as const) + : baseThread.status; + yield* emitProviderThreadRoster({ nativeThreadId, providerThread: baseThread, status }); + }); + const applyBackgroundTaskRosterMessage = Effect.fnUntraced(function* (input: { readonly nativeThreadId: string; readonly message: SDKMessage; @@ -7355,24 +7427,7 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( return false; } - const baseThread = - input.activeContext?.input.providerThread ?? - (yield* Ref.get(lastProviderThreadByNativeThread)).get(input.nativeThreadId); - if (baseThread === undefined) { - return true; - } - - const status = - input.activeContext === null - ? ("idle" as const) - : baseThread.status === "idle" - ? ("active" as const) - : baseThread.status; - yield* emitProviderThreadRoster({ - nativeThreadId: input.nativeThreadId, - providerThread: baseThread, - status, - }); + yield* emitRosterUpdate(input.nativeThreadId, input.activeContext); return true; }); @@ -10231,6 +10286,40 @@ export const makeClaudeAdapterV2 = Effect.fn("makeClaudeAdapterV2")(function* ( ), ); }), + awaitBackgroundTasks: Effect.fn("ClaudeAdapterV2.awaitBackgroundTasks")( + function* ({ providerThread, taskIds, awaited }) { + const nativeThreadId = providerThread.nativeThreadRef?.nativeId; + if (nativeThreadId == null) return { matched: [] }; + const roster = rosterForNativeThread( + yield* Ref.get(pendingBackgroundTasksByNativeThread), + nativeThreadId, + ); + const matched = [...new Set(taskIds)].filter((taskId) => roster.has(taskId)); + if (matched.length === 0) return { matched }; + if (awaited) { + yield* addTaskIdsToNativeThreadSet( + awaitedBackgroundTasksByNativeThread, + nativeThreadId, + matched, + ); + } else { + for (const taskId of matched) { + yield* clearTaskIdFromNativeThreadSet( + awaitedBackgroundTasksByNativeThread, + nativeThreadId, + taskId, + ); + } + } + const active = yield* Ref.get(activeTurn); + yield* emitRosterUpdate( + nativeThreadId, + active?.nativeThreadId === nativeThreadId ? active : null, + ); + return { matched }; + }, + (effect) => sdkMessageLock.withPermits(1)(effect), + ), interruptTurn, stopSubagent: Effect.fn("ClaudeAdapterV2.stopSubagent")(function* (input) { const existing = yield* Ref.get(queryContext); diff --git a/apps/server/src/orchestration-v2/DelegatedCompletionDelivery.test.ts b/apps/server/src/orchestration-v2/DelegatedCompletionDelivery.test.ts index e58c8a1e528f..f26a72365a69 100644 --- a/apps/server/src/orchestration-v2/DelegatedCompletionDelivery.test.ts +++ b/apps/server/src/orchestration-v2/DelegatedCompletionDelivery.test.ts @@ -2035,7 +2035,7 @@ it.layer(layerTest)("delegated tasks across a server restart", (it) => { completionWake: "always", continuationPending: true, runStatus: "completed", - lostWork: [{ kind: "monitor", label: "Gate attempt 9" }], + lostWork: [{ kind: "monitor", label: "Gate attempt 9", awaited: true }], now, }); yield* orchestrator.recoverDelegatedTasks; diff --git a/apps/server/src/orchestration-v2/ProjectionStore.test.ts b/apps/server/src/orchestration-v2/ProjectionStore.test.ts index 419e4f9d4eb2..98d6e4c2e81a 100644 --- a/apps/server/src/orchestration-v2/ProjectionStore.test.ts +++ b/apps/server/src/orchestration-v2/ProjectionStore.test.ts @@ -5954,6 +5954,7 @@ it.layer(layerTest)("ProjectionStoreV2", (it) => { taskId: "pull-request-watch:github.com/pingdotgg/t3code#7", description: "Watching pull request #7", kind: "monitor", + awaited: true, }, ]); assert.equal(yield* phase, "running"); @@ -5986,7 +5987,9 @@ it.layer(layerTest)("ProjectionStoreV2", (it) => { lastRunOrdinal: 1, handoffIds: [], forkedFrom: null, - pendingBackgroundTasks: [{ taskId: "watch", kind: "monitor" as const }], + pendingBackgroundTasks: [ + { taskId: "watch", kind: "monitor" as const, awaited: true as const }, + ], createdAt: completedAt, updatedAt: completedAt, }; diff --git a/apps/server/src/orchestration-v2/RestartBackgroundNote.test.ts b/apps/server/src/orchestration-v2/RestartBackgroundNote.test.ts index df184a610822..f9233931a621 100644 --- a/apps/server/src/orchestration-v2/RestartBackgroundNote.test.ts +++ b/apps/server/src/orchestration-v2/RestartBackgroundNote.test.ts @@ -115,6 +115,13 @@ it("names a lost subagent by the id the agent resumes it with", () => { }).label; assert.lengthOf(longId, 160); assert.isFalse(isAwaitedWork(cancelledRosterTaskWork({ kind: "command", taskId: "shell-2" }))); + assert.isTrue( + isAwaitedWork(cancelledRosterTaskWork({ kind: "command", taskId: "tests", awaited: true })), + ); + assert.isFalse(isAwaitedWork(cancelledRosterTaskWork({ kind: "monitor", taskId: "watchdog" }))); + assert.isTrue( + isAwaitedWork(cancelledRosterTaskWork({ kind: "monitor", taskId: "ci", awaited: true })), + ); assert.equal( cancelledTurnItemWork({ id: "item-1", diff --git a/apps/server/src/orchestration-v2/RestartBackgroundNote.ts b/apps/server/src/orchestration-v2/RestartBackgroundNote.ts index 62d534a81ad0..937e023903cf 100644 --- a/apps/server/src/orchestration-v2/RestartBackgroundNote.ts +++ b/apps/server/src/orchestration-v2/RestartBackgroundNote.ts @@ -118,6 +118,7 @@ export function cancelledRosterTaskWork(task: OrchestrationV2PendingBackgroundTa description === undefined ? task.taskId : `${description} (id ${task.taskId})`, ) ?? "background task", id: task.taskId, + ...(task.awaited === true ? { awaited: true as const } : {}), }; } @@ -158,11 +159,12 @@ export function isRestartNoteSource( } /** - * A shell does not wake it: most are dev servers that nobody waits on, so their - * note waits for the next user message. + * Matches the Working-section hold: a shell or monitor wakes it only when the agent said it + * waits on it. Most are dev servers and their watchdogs, so their note waits for the next + * user message. */ -export function isAwaitedWork(work: Pick): boolean { - return work.kind !== "shell"; +export function isAwaitedWork(work: Pick): boolean { + return work.awaited === true || (work.kind !== "shell" && work.kind !== "monitor"); } export function runOutcome( diff --git a/apps/server/src/orchestration-v2/RestartContinuation.test.ts b/apps/server/src/orchestration-v2/RestartContinuation.test.ts index 2483534ed75d..8529e17931a6 100644 --- a/apps/server/src/orchestration-v2/RestartContinuation.test.ts +++ b/apps/server/src/orchestration-v2/RestartContinuation.test.ts @@ -191,12 +191,12 @@ it("does not continue settled root runs with restart-cancelled background work", }); it.effect.each(["completed", "waiting", "cancelled"] as const)( - "wakes a %s run whose monitor the restart cancelled, with the note as its prompt", + "wakes a %s run whose awaited monitor the restart cancelled, with the note as its prompt", (status) => Effect.gen(function* () { const base = makeProjection(); const work = [ - { kind: "monitor" as const, label: "Watch CI run 42" }, + { kind: "monitor" as const, label: "Watch CI run 42", awaited: true as const }, { kind: "shell" as const, label: "vp run dev" }, ]; const projection = { diff --git a/apps/server/src/orchestration-v2/ThreadManagementService.test.ts b/apps/server/src/orchestration-v2/ThreadManagementService.test.ts index 8d1f613180a3..0314008c6369 100644 --- a/apps/server/src/orchestration-v2/ThreadManagementService.test.ts +++ b/apps/server/src/orchestration-v2/ThreadManagementService.test.ts @@ -3,6 +3,10 @@ import { CommandId, MessageId, type OrchestrationV2Run, + type OrchestrationV2ProviderThread, + ProviderThreadId, + ProviderDriverKind, + ProviderSessionId, type OrchestrationV2StoredEvent, type OrchestrationV2ThreadProjection, ProjectId, @@ -12,6 +16,7 @@ import { } from "@t3tools/contracts"; import * as Deferred from "effect/Deferred"; import * as DateTime from "effect/DateTime"; +import * as Option from "effect/Option"; import * as Effect from "effect/Effect"; import * as Fiber from "effect/Fiber"; import * as Layer from "effect/Layer"; @@ -23,7 +28,9 @@ import * as SqlitePersistence from "../persistence/Sqlite.ts"; import * as CommandReceiptStore from "./CommandReceiptStore.ts"; import * as Orchestrator from "./Orchestrator.ts"; import * as ProviderSessionManager from "./ProviderSessionManager.ts"; +import * as ProviderAdapter from "@t3tools/provider-core/server/ProviderAdapter"; import * as ThreadManagementService from "./ThreadManagementService.ts"; +import * as ThreadCommandExecutor from "./ThreadCommandExecutor.ts"; const layerReceiptsTest = CommandReceiptStore.layer.pipe( Layer.provide(SqlitePersistence.layerMemory), @@ -297,6 +304,103 @@ it.effect("waitForThread returns the cut run once its continuation is declined", }), ); +it.effect.each(["live", "no-session", "unsupported-runtime"] as const)( + "marks background work awaited on the thread's active provider thread with state %s", + (state) => + Effect.gen(function* () { + const threadId = ThreadId.make("thread:background-wait"); + const providerThreadId = ProviderThreadId.make("provider-thread:background-wait"); + const providerSessionId = ProviderSessionId.make("provider-session:background-wait"); + const driver = ProviderDriverKind.make("claudeAgent"); + const now = yield* DateTime.now; + const providerThread: OrchestrationV2ProviderThread = { + id: providerThreadId, + driver, + providerInstanceId: ProviderInstanceId.make("claudeAgent"), + providerSessionId, + appThreadId: threadId, + ownerNodeId: null, + nativeThreadRef: { driver, nativeId: "native-thread", strength: "strong" }, + nativeConversationHeadRef: null, + status: "idle", + firstRunOrdinal: 1, + lastRunOrdinal: 1, + handoffIds: [], + forkedFrom: null, + pendingBackgroundTasks: [{ taskId: "tests", kind: "command" }], + contextUsage: null, + nativeMetadata: null, + createdAt: now, + updatedAt: now, + }; + const calls: Array<{ providerThreadId: ProviderThreadId; awaited: boolean }> = []; + const runtime = { + driver, + providerSessionId, + ...(state === "unsupported-runtime" + ? {} + : { + awaitBackgroundTasks: (input: { + readonly providerThread: OrchestrationV2ProviderThread; + readonly taskIds: ReadonlyArray; + readonly awaited: boolean; + }) => + Effect.sync(() => { + calls.push({ + providerThreadId: input.providerThread.id, + awaited: input.awaited, + }); + return { matched: input.taskIds.filter((taskId) => taskId === "tests") }; + }), + }), + } as unknown as ProviderAdapter.ProviderAdapterV2SessionRuntime; + const layerTest = ThreadManagementService.layer.pipe( + Layer.provide( + Layer.mergeAll( + Layer.mock(Orchestrator.OrchestratorV2)({ + getThreadRecords: () => + Effect.succeed({ + thread: { + id: threadId, + deletedAt: null, + activeProviderThreadId: providerThreadId, + }, + providerThreads: [providerThread], + } as unknown as OrchestrationV2ThreadProjection), + }), + Layer.mock(ProviderSessionManager.ProviderSessionManagerV2)({ + get: () => + Effect.succeed(state === "no-session" ? Option.none() : Option.some(runtime)), + }), + ), + ), + Layer.provide(ServerSettings.layerTest()), + Layer.provide(layerReceiptsTest), + ); + const result = yield* Effect.gen(function* () { + const service = yield* ThreadManagementService.ThreadManagementService; + return yield* service + .awaitBackgroundTasks({ threadId, taskIds: ["tests", "finished"], awaited: true }) + .pipe(Effect.result); + }).pipe(Effect.provide(Layer.merge(layerTest, ThreadCommandExecutor.layer))); + + if (state === "live") { + expect(result).toMatchObject({ + success: { matched: ["tests"], unmatched: ["finished"] }, + }); + expect(calls).toEqual([{ providerThreadId, awaited: true }]); + } else { + expect(result).toMatchObject({ + failure: { + _tag: "ThreadManagementBackgroundWaitError", + reason: state === "no-session" ? "unavailable" : "unsupported", + }, + }); + expect(calls).toEqual([]); + } + }), +); + it.effect.each([ { status: "completed" as const, settles: true }, { status: "failed" as const, settles: false }, diff --git a/apps/server/src/orchestration-v2/ThreadManagementService.ts b/apps/server/src/orchestration-v2/ThreadManagementService.ts index 78b3aa07d247..f4c79c272153 100644 --- a/apps/server/src/orchestration-v2/ThreadManagementService.ts +++ b/apps/server/src/orchestration-v2/ThreadManagementService.ts @@ -295,6 +295,26 @@ export class ThreadManagementProviderInstanceDisabledError extends Schema.Tagged } } +export class ThreadManagementBackgroundWaitError extends Schema.TaggedError()( + "ThreadManagementBackgroundWaitError", + { + threadId: ThreadId, + reason: Schema.Literals(["unsupported", "unavailable", "failed"]), + cause: Schema.optional(Schema.Defect()), + }, +) { + override get message(): string { + switch (this.reason) { + case "unsupported": + return "This provider cannot mark background work as awaited."; + case "unavailable": + return "This thread has no live provider session."; + case "failed": + return "Failed to update the awaited background work."; + } + } +} + export const ThreadManagementError = Schema.Union([ ThreadManagementThreadNotFoundError, ThreadManagementRunNotFoundError, @@ -421,6 +441,14 @@ export interface ThreadManagementServiceShape { readonly stopWorkflow: ( input: OrchestrationV2StopWorkflowInput, ) => Effect.Effect; + readonly awaitBackgroundTasks: (input: { + readonly threadId: ThreadId; + readonly taskIds: ReadonlyArray; + readonly awaited: boolean; + }) => Effect.Effect< + { readonly matched: ReadonlyArray; readonly unmatched: ReadonlyArray }, + ThreadManagementBackgroundWaitError + >; readonly stopDelegatedTasks: (input: { readonly threadId: ThreadId; readonly commandId: CommandId; @@ -1097,6 +1125,55 @@ const make = Effect.gen(function* () { (effect, input) => effect.pipe((effect) => threadDispatch.withLock(input.threadId, effect)), ); + const awaitBackgroundTasks: ThreadManagementServiceShape["awaitBackgroundTasks"] = Effect.fn( + "ThreadManagementService.awaitBackgroundTasks", + )(function* (input) { + const unavailable = (cause?: unknown) => + new ThreadManagementBackgroundWaitError({ + threadId: input.threadId, + reason: "unavailable", + ...(cause === undefined ? {} : { cause }), + }); + const records = yield* orchestrator + .getThreadRecords(input.threadId, ["providerThreads"]) + .pipe(Effect.mapError(unavailable)); + const providerThread = records.providerThreads.find( + (candidate) => + candidate.id === records.thread.activeProviderThreadId && + candidate.appThreadId === input.threadId, + ); + if (records.thread.deletedAt !== null || providerThread?.providerSessionId == null) { + return yield* unavailable(); + } + const runtime = yield* sessions + .get(providerThread.providerSessionId) + .pipe(Effect.mapError(unavailable)); + if (Option.isNone(runtime)) { + return yield* unavailable(); + } + if (runtime.value.awaitBackgroundTasks === undefined) { + return yield* new ThreadManagementBackgroundWaitError({ + threadId: input.threadId, + reason: "unsupported", + }); + } + const { matched } = yield* runtime.value + .awaitBackgroundTasks({ providerThread, taskIds: input.taskIds, awaited: input.awaited }) + .pipe( + Effect.timeout("15 seconds"), + Effect.mapError( + (cause) => + new ThreadManagementBackgroundWaitError({ + threadId: input.threadId, + reason: "failed", + cause, + }), + ), + ); + const matchedIds = new Set(matched); + return { matched, unmatched: input.taskIds.filter((taskId) => !matchedIds.has(taskId)) }; + }); + const stopDelegatedTasks: ThreadManagementServiceShape["stopDelegatedTasks"] = Effect.fn( "ThreadManagementService.stopDelegatedTasks", )(function* (input) { @@ -1189,6 +1266,7 @@ const make = Effect.gen(function* () { interruptThread, stopDelegatedTasks, stopWorkflow, + awaitBackgroundTasks, getThreadEventSequence: orchestrator.getThreadEventSequence, recoverDelegatedTask: orchestrator.recoverDelegatedTask, delegatedTaskResultPending: orchestrator.delegatedTaskResultPending, diff --git a/apps/server/src/orchestration-v2/runtimeLayer.test.ts b/apps/server/src/orchestration-v2/runtimeLayer.test.ts index 9f0edb83f0f3..6901f5b8bc24 100644 --- a/apps/server/src/orchestration-v2/runtimeLayer.test.ts +++ b/apps/server/src/orchestration-v2/runtimeLayer.test.ts @@ -3478,10 +3478,11 @@ it.layer(layerTest)("OrchestrationV2LayerLive lifecycle", (it) => { ["completed", "shell", false], ["waiting", "shell", false], ["cancelled", "shell", false], - ["failed", "monitor", false], - ["completed", "monitor", true], - ["waiting", "monitor", true], - ["cancelled", "monitor", true], + ["completed", "watchdog-monitor", false], + ["failed", "awaited-monitor", false], + ["completed", "awaited-monitor", true], + ["waiting", "awaited-monitor", true], + ["cancelled", "awaited-monitor", true], ] as const)( "admits a restart continuation of a %s run that lost a %s: %s", ([status, kind, admitted]) => @@ -3539,7 +3540,15 @@ it.layer(layerTest)("OrchestrationV2LayerLive lifecycle", (it) => { occurredAt: now, payload: { runId: original.id, - restartCancelledBackgroundWork: [{ kind, label: "sleep 25" }], + restartCancelledBackgroundWork: [ + kind === "shell" + ? { kind, label: "sleep 25" } + : { + kind: "monitor", + label: "sleep 25", + ...(kind === "awaited-monitor" ? { awaited: true as const } : {}), + }, + ], }, }, ], diff --git a/apps/server/src/relay/AgentAwarenessRelay.test.ts b/apps/server/src/relay/AgentAwarenessRelay.test.ts index d1ad9e7a58a6..b5f400dc3432 100644 --- a/apps/server/src/relay/AgentAwarenessRelay.test.ts +++ b/apps/server/src/relay/AgentAwarenessRelay.test.ts @@ -215,6 +215,7 @@ const makeTestRelay = Effect.fnUntraced(function* ( settleThread: unused, interruptThread: unused, stopWorkflow: () => Effect.die("unused stopWorkflow"), + awaitBackgroundTasks: unused, stopDelegatedTasks: unused, getThreadEventSequence: unused, recoverDelegatedTask: unused, @@ -418,14 +419,14 @@ describe("AgentAwarenessRelay", () => { }).pipe(Effect.scoped), ); - it.effect("keeps settled live work until its monitor finishes", () => + it.effect("keeps settled live work until its awaited monitor finishes", () => Effect.gen(function* () { const { relay, currentShell, publications } = yield* makeTestRelay(); yield* relay.publishThread(THREAD_ID); const held = shell({ status: "completed", settledOverride: "settled", - pendingBackgroundTasks: [{ taskId: "watch", kind: "monitor" }], + pendingBackgroundTasks: [{ taskId: "watch", kind: "monitor", awaited: true }], }); yield* Ref.set(currentShell, held); yield* relay.publishThread(THREAD_ID); diff --git a/apps/web/src/components/Sidebar.logic.test.ts b/apps/web/src/components/Sidebar.logic.test.ts index 5bcda0795cc5..0b103763f1fc 100644 --- a/apps/web/src/components/Sidebar.logic.test.ts +++ b/apps/web/src/components/Sidebar.logic.test.ts @@ -446,7 +446,9 @@ describe("resolveThreadStatusPill", () => { resolveThreadStatusPill({ thread: { ...baseThread, - pendingBackgroundTasks: [{ taskId: "bg-1", description: "Watch build", kind: "monitor" }], + pendingBackgroundTasks: [ + { taskId: "bg-1", description: "Watch build", kind: "monitor", awaited: true }, + ], runtime: { ...baseThread.runtime, status: "idle", @@ -961,16 +963,38 @@ describe("navigation after parking a thread", () => { describe("unseen completion with background work", () => { it.each([ - { kind: "command", status: "ready", topStatus: "done", receded: false, pill: "Completed" }, - { kind: "monitor", status: "waiting", topStatus: "waiting", receded: true, pill: "Waiting" }, - ] as const)("presents a completed thread with a $kind roster", (expected) => { + { + roster: "dev server", + task: { kind: "command" }, + status: "ready", + topStatus: "done", + receded: false, + pill: "Completed", + }, + { + roster: "dev server watchdog", + task: { kind: "monitor" }, + status: "ready", + topStatus: "done", + receded: false, + pill: "Completed", + }, + { + roster: "awaited command", + task: { kind: "command", awaited: true }, + status: "waiting", + topStatus: "waiting", + receded: true, + pill: "Waiting", + }, + ] as const)("presents a completed thread with a $roster roster", (expected) => { const thread = presentThreadShell(localEnvironmentId, { ...makeThreadFixture().source, latestRunId: RunId.make("run-background-completion"), status: "completed", latestRunCompletedAt: DateTime.makeUnsafe("2026-06-20T01:00:00.000Z"), lastVisitedAt: DateTime.makeUnsafe("2026-06-20T00:59:00.000Z"), - pendingBackgroundTasks: [{ taskId: "background-work", kind: expected.kind }], + pendingBackgroundTasks: [{ taskId: "background-work", ...expected.task }], }); const status = resolveSidebarThreadStatus(thread); const isUnread = hasUnseenCompletion(thread); @@ -1001,7 +1025,12 @@ describe("Working shelf (beta)", () => { lastError: null, updatedAt: "2026-03-09T10:00:00.000Z", }; - const backgroundTask = { taskId: "bg-1", description: "Watch build", kind: "monitor" as const }; + const backgroundTask = { + taskId: "bg-1", + description: "Watch build", + kind: "monitor" as const, + awaited: true as const, + }; const idle = { hasActionableProposedPlan: false, hasPendingApprovals: false, diff --git a/docs/internals/server-updates.md b/docs/internals/server-updates.md index 5260ea989671..1536884578d4 100644 --- a/docs/internals/server-updates.md +++ b/docs/internals/server-updates.md @@ -72,10 +72,11 @@ opt-out. The requires matching durable run, provider thread, session, and native resume identity. Queued runs never started, so recovery holds them and continues the run they wait behind. A settled run qualifies only when the restart cancels work the agent waits on -(a monitor, subagent, or background task) and its session was live, so stale records -from an older crash never wake it. Its continuation prompt is the note of what will not -report back. A shell alone does not wake a settled run: most are dev servers nobody -waits on, so that note waits for the next user message. +(a subagent, a background task, or a shell or monitor the agent marked with +`t3_background_wait`) and its session was live, so stale records from an older crash +never wake it. Its continuation prompt is the note of what will not report back. An +unmarked shell or monitor does not wake a settled run: most are dev servers and their +watchdogs that nobody waits on, so that note waits for the next user message. Recovery retires effects tied to the lost process and records continuation intent in the durable outbox. That intent survives another restart before provider startup. diff --git a/docs/user/thread-sidebar.md b/docs/user/thread-sidebar.md index 2103e4c565b5..86d8edde64bf 100644 --- a/docs/user/thread-sidebar.md +++ b/docs/user/thread-sidebar.md @@ -120,10 +120,12 @@ open. Turn on **Settings → General → Working section (beta)** on web and desktop, or **Settings → Thread behavior → Working section** on iOS and Android, to move threads that are working or -monitoring into a collapsed **Working** section below the active list. A thread returns to the top -of the active list when it finishes, fails, or needs an approval or answer. The Working section -lists the thread you last sent work to first. Pinned threads stay in the pinned section. Each -device keeps its own choice. +waiting on work they will resume from into a collapsed **Working** section below the active list. +That includes subagents, watched pull requests, and background commands or monitors the agent +says it is waiting on. A dev server or other process an agent leaves running does not keep a thread +there. A thread returns to the top of the active list when it finishes, fails, or needs an approval or +answer. The Working section lists the thread you last sent work to first. Pinned threads stay in +the pinned section. Each device keeps its own choice. While this is on, the active list is ordered by when each thread last came back to you, so you cannot drag or move threads within it. Your saved order returns when you turn it off. @@ -153,8 +155,8 @@ Press `Escape` while dragging to cancel. By default, environments settle inactive threads after three days and settle threads whose pull request merged. A closed pull request can also settle an idle thread. An empty thread's inactivity counts from when it was created. -Work in progress, pending questions or approvals, and live background work -prevent automatic settlement. An open pull request does not prevent inactivity +Work in progress, pending questions or approvals, and background work the agent +is waiting on prevent automatic settlement. An open pull request does not prevent inactivity settlement unless you turn on **Keep threads with a PR** in **Settings → General**, but an old closed or merged pull request does not settle work you resumed after it closed. Only your own messages count as resuming. A turn that diff --git a/docs/user/updating.md b/docs/user/updating.md index 706d8fad5e10..cb36732b5747 100644 --- a/docs/user/updating.md +++ b/docs/user/updating.md @@ -49,9 +49,10 @@ different value, use **Apply to all** in Settings after it connects. T3 Code must start again on that machine; the setting does not enable automatic startup. Terminal commands may still be interrupted, and threads without saved provider resume state need a new message. -A thread that finished its turn to wait on a monitor, subagent, or background task -is woken and told that this work stopped. A background shell, such as a dev server, -does not wake it; the thread learns about it with your next message. +A thread that finished its turn to wait on a subagent, a background task, or a +command or monitor the agent said it was waiting on is woken and told that this work +stopped. Other background shells and monitors, such as a dev server and its +watchdog, do not wake it; the thread learns about them with your next message. A thread is not resumed while it waits for your approval, answer, or secret, or while it is archived, snoozed, or settled. After three automatic resumes in a row, the thread waits for your next message. diff --git a/packages/client-runtime/src/state/entities.test.ts b/packages/client-runtime/src/state/entities.test.ts index 0b89a79b2adb..abc16b9a7df6 100644 --- a/packages/client-runtime/src/state/entities.test.ts +++ b/packages/client-runtime/src/state/entities.test.ts @@ -73,7 +73,11 @@ describe("V2 client presentation", () => { }); it("parks a thread that never ran at idle while a pull request watch holds it", () => { - const watch = { taskId: "pull-request-watch:github.com/acme/app#1", kind: "monitor" as const }; + const watch = { + taskId: "pull-request-watch:github.com/acme/app#1", + kind: "monitor" as const, + awaited: true as const, + }; const watched = presentThreadShell(environmentId, { ...v2ThreadShell, latestRunId: null, @@ -141,7 +145,9 @@ describe("V2 client presentation", () => { activeRunId: null, status: "failed", lastError: "Provider turn failed", - pendingBackgroundTasks: [{ taskId: "bg-1", description: "Watch build", kind: "monitor" }], + pendingBackgroundTasks: [ + { taskId: "bg-1", description: "Watch build", kind: "monitor", awaited: true }, + ], }); expect(shell.runtime).toMatchObject({ status: "failed", lastError: "Provider turn failed" }); @@ -192,7 +198,9 @@ describe("V2 client presentation", () => { latestRunId: runId, activeRunId: runId, status: "running", - pendingBackgroundTasks: [{ taskId: "bg-1", description: "Watch build", kind: "monitor" }], + pendingBackgroundTasks: [ + { taskId: "bg-1", description: "Watch build", kind: "monitor", awaited: true }, + ], }); expect(shell.latestRun).toMatchObject({ runId, status: "running" }); @@ -201,7 +209,7 @@ describe("V2 client presentation", () => { activeRunId: runId, }); expect(shell.pendingBackgroundTasks).toEqual([ - { taskId: "bg-1", description: "Watch build", kind: "monitor" }, + { taskId: "bg-1", description: "Watch build", kind: "monitor", awaited: true }, ]); }); @@ -403,7 +411,7 @@ describe("V2 client presentation", () => { ).toMatchObject({ status, activeRunId: null }); } - for (const kind of ["monitor", "background_task"] as const) { + for (const held of [{ kind: "monitor", awaited: true }, { kind: "background_task" }] as const) { const providerThread = { id: ProviderThreadId.make("provider-thread-background"), driver: ProviderDriverKind.make("claudeCode"), @@ -418,7 +426,7 @@ describe("V2 client presentation", () => { lastRunOrdinal: 1, handoffIds: [], forkedFrom: null, - pendingBackgroundTasks: [{ taskId: "background-task", kind }], + pendingBackgroundTasks: [{ taskId: "background-task", ...held }], createdAt: now, updatedAt: now, }; diff --git a/packages/client-runtime/src/state/models.ts b/packages/client-runtime/src/state/models.ts index 2474f3852efc..d5a1bbaccd91 100644 --- a/packages/client-runtime/src/state/models.ts +++ b/packages/client-runtime/src/state/models.ts @@ -211,10 +211,10 @@ function terminalRunStatus(status: OrchestrationV2RunStatus): boolean { ); } -// Only work that wakes the agent holds it: commands it left running, such as a -// dev server, present the run's own status (#14872). The server suppresses the -// roster while an interruptible activity run exists, so a remaining roster is -// stronger than checkpoint-oriented waiting. +// Only work the agent waits on holds it: commands and monitors it left running +// unmarked, such as a dev server, present the run's own status (#14872). The +// server suppresses the roster while an interruptible activity run exists, so a +// remaining roster is stronger than checkpoint-oriented waiting. function shellRuntime(thread: OrchestrationV2ThreadShell): ThreadRuntimeSummary | null { const parkAtIdle = backgroundWorkHoldsCompletion(thread.pendingBackgroundTasks ?? []) && diff --git a/packages/client-runtime/src/t3ToolSummary.ts b/packages/client-runtime/src/t3ToolSummary.ts index df655c1d6c21..d0fe65bbfc15 100644 --- a/packages/client-runtime/src/t3ToolSummary.ts +++ b/packages/client-runtime/src/t3ToolSummary.ts @@ -176,6 +176,9 @@ export function summarizeT3ToolCalls( case "task-status": label = phrase("Checked", "check", `task status ${times}`); break; + case "background-wait": + label = phrase("Updated", "update", `background waits ${times}`); + break; case "task-cancel": label = phrase( "Requested cancellation of", diff --git a/packages/client-runtime/src/work-log/presentation.ts b/packages/client-runtime/src/work-log/presentation.ts index d6f3bac7ef7c..a28ae17c2620 100644 --- a/packages/client-runtime/src/work-log/presentation.ts +++ b/packages/client-runtime/src/work-log/presentation.ts @@ -490,6 +490,7 @@ function summaryActionPriority(action: ToolGroupAction | T3McpToolSummaryAction) case "thread-send": case "thread-interrupt": case "workflow-stop": + case "background-wait": case "schedule-create": case "schedule-update": case "schedule-delete": diff --git a/packages/contracts/src/orchestrationV2.ts b/packages/contracts/src/orchestrationV2.ts index 46403eb635d9..5ef2dd247a51 100644 --- a/packages/contracts/src/orchestrationV2.ts +++ b/packages/contracts/src/orchestrationV2.ts @@ -556,6 +556,8 @@ export const OrchestrationV2RestartCancelledBackgroundWork = Schema.Struct({ kind: Schema.Literals(["subagent", "shell", "monitor", "task"]), label: TrimmedNonEmptyString, id: Schema.optional(TrimmedNonEmptyString), + /** The agent was waiting on this work, so its restart note wakes the agent even for a shell. */ + awaited: Schema.optional(Schema.Literal(true)), }); export type OrchestrationV2RestartCancelledBackgroundWork = typeof OrchestrationV2RestartCancelledBackgroundWork.Type; @@ -874,6 +876,11 @@ const PendingBackgroundTaskFields = { description: Schema.optional(TrimmedNonEmptyString), /** The subagent task that started this work and waits on it. */ parentTaskId: Schema.optional(TrimmedNonEmptyString), + /** + * The agent declared it resumes when this work ends, so the thread holds like it does for a + * subagent. Only the agent knows whether a command is a wait or a dev server it left running. + */ + awaited: Schema.optional(Schema.Literal(true)), }; export const OrchestrationV2PendingBackgroundTask = kindUnionWithFallback( diff --git a/packages/provider-core/src/server/ProviderAdapter.ts b/packages/provider-core/src/server/ProviderAdapter.ts index 314705eca3af..8f9fc3260845 100644 --- a/packages/provider-core/src/server/ProviderAdapter.ts +++ b/packages/provider-core/src/server/ProviderAdapter.ts @@ -609,6 +609,15 @@ export interface ProviderAdapterV2SessionRuntime { readonly providerThread: OrchestrationV2ProviderThread; readonly taskId: string; }) => Effect.Effect; + /** + * Marks or unmarks background tasks the agent will resume from, using the ids the agent saw. + * Ids not running on this provider thread come back unmatched and change nothing. + */ + readonly awaitBackgroundTasks?: (input: { + readonly providerThread: OrchestrationV2ProviderThread; + readonly taskIds: ReadonlyArray; + readonly awaited: boolean; + }) => Effect.Effect<{ readonly matched: ReadonlyArray }, ProviderAdapterV2Error>; readonly interruptTurn: ( input: ProviderAdapterV2InterruptInput, ) => Effect.Effect; diff --git a/packages/shared/src/agentAwareness.test.ts b/packages/shared/src/agentAwareness.test.ts index 83d85cd5a332..c424d780ffcc 100644 --- a/packages/shared/src/agentAwareness.test.ts +++ b/packages/shared/src/agentAwareness.test.ts @@ -153,7 +153,7 @@ describe("projectThreadAwarenessV2", () => { }, ); - it("keeps settled work held open by a monitor", () => { + it("keeps settled work held open by an awaited monitor", () => { expect( projectThreadAwarenessV2({ environmentId: "env-1" as EnvironmentId, @@ -161,7 +161,7 @@ describe("projectThreadAwarenessV2", () => { thread: v2Thread({ status: "completed", settledOverride: "settled", - pendingBackgroundTasks: [{ taskId: "watch", kind: "monitor" }], + pendingBackgroundTasks: [{ taskId: "watch", kind: "monitor", awaited: true }], }), }), ).toMatchObject({ phase: "running" }); @@ -169,7 +169,12 @@ describe("projectThreadAwarenessV2", () => { it.each([ ["only a dev server", "completed", [{ taskId: "dev", kind: "command" }]], - ["a monitor", "running", [{ taskId: "watch", kind: "monitor" }]], + ["a dev server's watchdog monitor", "completed", [{ taskId: "watch", kind: "monitor" }]], + [ + "a command the agent waits on", + "running", + [{ taskId: "tests", kind: "command", awaited: true }], + ], [ "a dev server and a subagent", "running", diff --git a/packages/shared/src/orchestrationV2PendingBackgroundWork.test.ts b/packages/shared/src/orchestrationV2PendingBackgroundWork.test.ts index 934d7f817577..91c827ed8159 100644 --- a/packages/shared/src/orchestrationV2PendingBackgroundWork.test.ts +++ b/packages/shared/src/orchestrationV2PendingBackgroundWork.test.ts @@ -5,6 +5,17 @@ import { derivePendingBackgroundWork, } from "./orchestrationV2PendingBackgroundWork.ts"; +describe("backgroundWorkHoldsCompletion", () => { + it.each([ + ["a dev server", false, [{ taskId: "dev", kind: "command" }]], + ["a dev server's watchdog monitor", false, [{ taskId: "watch", kind: "monitor" }]], + ["a command the agent waits on", true, [{ taskId: "tests", kind: "command", awaited: true }]], + ["a subagent", true, [{ taskId: "review", kind: "subagent" }]], + ] as const)("with %s pending, holds completion: %s", (_case, holds, tasks) => { + expect(backgroundWorkHoldsCompletion(tasks)).toBe(holds); + }); +}); + describe("derivePendingBackgroundWork", () => { it("takes each subagent item's instance from its joined owner", () => { const owner = ProviderInstanceId.make("claude-owner"); @@ -309,6 +320,7 @@ describe("derivePendingBackgroundWork kinds", () => { id: "pt-1" as never, pendingBackgroundTasks: [ { taskId: "bash", kind: "command" }, + { taskId: "tests", kind: "command", awaited: true }, { taskId: "watch", kind: "monitor" }, { taskId: "workflow", kind: "background_task" }, ], @@ -335,6 +347,7 @@ describe("derivePendingBackgroundWork kinds", () => { }); expect(tasks).toEqual([ { taskId: "bash", kind: "command" }, + { taskId: "tests", kind: "command", awaited: true }, { taskId: "watch", kind: "monitor" }, { taskId: "workflow", kind: "background_task" }, { @@ -376,7 +389,7 @@ describe("derivePendingBackgroundWork kinds", () => { link(3, { source: "stack-dismissed" }), ]; - it("keeps a settled run waiting on each visible watch, as a monitor", () => { + it("keeps a settled run waiting on each visible watch, as an awaited monitor", () => { const tasks = derivePendingBackgroundWork({ latestRun: { id: "run-1" as never, ordinal: 1, status: "completed" }, providerThreads: [], @@ -388,6 +401,7 @@ describe("derivePendingBackgroundWork kinds", () => { taskId: "pull-request-watch:github.com/acme/app#1", description: "Watching pull request #1", kind: "monitor", + awaited: true, }, ]); expect(backgroundWorkHoldsCompletion(tasks)).toBe(true); diff --git a/packages/shared/src/orchestrationV2PendingBackgroundWork.ts b/packages/shared/src/orchestrationV2PendingBackgroundWork.ts index 3041d1937b17..d5843c995cc4 100644 --- a/packages/shared/src/orchestrationV2PendingBackgroundWork.ts +++ b/packages/shared/src/orchestrationV2PendingBackgroundWork.ts @@ -92,17 +92,21 @@ export function deriveBlockedOnThreadWait(input: { } export function backgroundWorkHoldsCompletion( - tasks: ReadonlyArray>, + tasks: ReadonlyArray>, ): boolean { - return tasks.some((task) => backgroundWorkKindHoldsCompletion(task.kind)); + return tasks.some( + (task) => task.awaited === true || backgroundWorkKindHoldsCompletion(task.kind), + ); } +// Commands and monitors are as often a dev server or its watchdog as a wait, so they hold +// only when the agent marks them awaited. function backgroundWorkKindHoldsCompletion(kind: PendingBackgroundWorkTask["kind"]): boolean { switch (kind) { case "command": + case "monitor": return false; case "subagent": - case "monitor": case "background_task": return true; } @@ -308,6 +312,7 @@ function pullRequestWatchTasks( taskId: `pull-request-watch:${link.host.toLowerCase()}/${link.repository.toLowerCase()}#${link.number}`, description: `Watching pull request #${link.number}`, kind: "monitor" as const, + awaited: true as const, }, ], ); diff --git a/packages/shared/src/t3McpToolPresentation.ts b/packages/shared/src/t3McpToolPresentation.ts index 21f8be3941f9..68f98ee5a725 100644 --- a/packages/shared/src/t3McpToolPresentation.ts +++ b/packages/shared/src/t3McpToolPresentation.ts @@ -22,6 +22,7 @@ export type T3McpToolSummaryAction = | "thread-wait" | "thread-interrupt" | "workflow-stop" + | "background-wait" | "thread-configuration" | "thread-configure" | "thread-fork" @@ -154,6 +155,10 @@ const T3_MCP_TOOLS: Readonly> = { ["Stop", "Stopping", "Requested a stop for", "a workflow"], "workflow-stop", ), + t3_background_wait: tool( + ["Update", "Updating", "Updated", "background waits"], + "background-wait", + ), t3_thread_interrupt: tool( ["Interrupt", "Interrupting", "Requested an interrupt of", "a T3 thread"], "thread-interrupt", From fa1347daa299fed6c0f6fd757c1546ca44bf9701 Mon Sep 17 00:00:00 2001 From: Theo Browne Date: Sat, 24 Oct 2026 17:43:45 -0700 Subject: [PATCH 19/28] fix(web): switched threads and Scroll to end land on the real end (#24622) Takes over #23490 by Ennio Cuteri, adding a frame limit on the settle loop and reporting positioned when its target disappears. Co-authored-by: Ennio Cuteri Co-Authored-By: Claude Opus 5.5 --- .../src/components/chat/useTimelineFollow.ts | 17 ++- .../chat/useTimelinePositionRestore.test.ts | 31 +++++ .../chat/useTimelinePositionRestore.ts | 111 +++++++++++------- 3 files changed, 114 insertions(+), 45 deletions(-) create mode 100644 apps/web/src/components/chat/useTimelinePositionRestore.test.ts diff --git a/apps/web/src/components/chat/useTimelineFollow.ts b/apps/web/src/components/chat/useTimelineFollow.ts index 191b1d2e8ea4..059781d3c0f0 100644 --- a/apps/web/src/components/chat/useTimelineFollow.ts +++ b/apps/web/src/components/chat/useTimelineFollow.ts @@ -28,6 +28,7 @@ import { type ChatComposerHandle } from "./ChatComposer"; import { createPageScrollController, type PageScrollKey } from "./pageScrollController"; import { createUpwardScrollDetector, isTimelineScrollTarget } from "./timelineScrollTarget"; import { resolveTimelineIsAtEnd } from "./MessagesTimeline.logic"; +import { measuredEndOffset, settleListScroll } from "./useTimelinePositionRestore"; import { shouldReleaseTimelineAnchorForToolActivity } from "../ChatView.logic"; import { releaseChatTimelineAnchor } from "../ChatView.logic"; import type { Dispatch, RefObject } from "react"; @@ -272,9 +273,19 @@ export function useTimelineFollow(input: TimelineFollowInput) { // The anchored end space must be gone before the scroll measures, or the // list lands short of the real end (#6519). requestAnimationFrame(() => { - void legendListRef.current?.scrollToEnd?.({ - animated: animated && !window.matchMedia("(prefers-reduced-motion: reduce)").matches, - }); + const list = legendListRef.current; + if (!list) return; + void Promise.resolve( + list.scrollToEnd?.({ + animated: animated && !window.matchMedia("(prefers-reduced-motion: reduce)").matches, + }), + ).then(() => + settleListScroll( + list, + measuredEndOffset, + () => timelineScrollModeRef.current !== "following-end" || legendListRef.current !== list, + ), + ); }); }; const scrollToEndStable = useStableCallback(scrollToEnd); diff --git a/apps/web/src/components/chat/useTimelinePositionRestore.test.ts b/apps/web/src/components/chat/useTimelinePositionRestore.test.ts new file mode 100644 index 000000000000..551d20c2ccad --- /dev/null +++ b/apps/web/src/components/chat/useTimelinePositionRestore.test.ts @@ -0,0 +1,31 @@ +import { describe, expect, it, vi } from "vite-plus/test"; +import { measuredEndOffset, settleListScroll } from "./useTimelinePositionRestore"; + +describe("settleListScroll", () => { + it("hands off when a streaming reply keeps moving the end", async () => { + vi.useFakeTimers(); + // The node test environment has no animation frames; fake ones run on the fake clock. + vi.stubGlobal("requestAnimationFrame", (callback: FrameRequestCallback) => + setTimeout(() => callback(0), 16), + ); + // Every correction lands, then the reply grows before the next frame. + const element = { scrollTop: 0, scrollHeight: 5_000, clientHeight: 800 }; + const list = { + getScrollableNode: () => element as unknown as HTMLElement, + scrollToOffset: async ({ offset }: { offset: number }) => { + element.scrollTop = offset; + element.scrollHeight += 40; + }, + }; + + let settled = false; + void settleListScroll(list, measuredEndOffset, () => false).then(() => { + settled = true; + }); + await vi.advanceTimersByTimeAsync(5_000); + vi.useRealTimers(); + vi.unstubAllGlobals(); + + expect(settled).toBe(true); + }); +}); diff --git a/apps/web/src/components/chat/useTimelinePositionRestore.ts b/apps/web/src/components/chat/useTimelinePositionRestore.ts index 700a2a41af06..52cd99c96c4a 100644 --- a/apps/web/src/components/chat/useTimelinePositionRestore.ts +++ b/apps/web/src/components/chat/useTimelinePositionRestore.ts @@ -4,6 +4,48 @@ import type { AssistantCitationRequest } from "./AssistantCitationSource"; import type { MessagesTimelineRow } from "./MessagesTimeline.logic"; import type { RememberedTimelinePosition } from "./timelineScrollAnchoring"; +// A streaming reply moves the end every frame, so the target may never hold +// still. Past this many frames the list's own end maintenance takes over. +const SETTLE_MAX_FRAMES = 60; + +/** + * Index and end scrolling start from estimated row sizes, so they can stop + * short of a tall row. Corrects against the DOM until the viewport holds the + * target for two layout frames, the frame budget runs out, the caller cancels, + * or the target disappears. + */ +export function settleListScroll( + list: Pick, + target: (element: HTMLElement) => number | undefined, + isCancelled: () => boolean, +): Promise { + return new Promise((resolve) => { + let stableFrames = 0; + let frames = 0; + const reconcile = () => { + if (isCancelled()) return resolve(); + const element = list.getScrollableNode(); + const offset = element ? target(element) : undefined; + frames += 1; + if (!element || offset === undefined || frames > SETTLE_MAX_FRAMES) return resolve(); + if (Math.abs(element.scrollTop - offset) > 1) { + stableFrames = 0; + void list.scrollToOffset({ offset, animated: false }).then(() => { + requestAnimationFrame(reconcile); + }); + return; + } + stableFrames += 1; + if (stableFrames >= 2) resolve(); + else requestAnimationFrame(reconcile); + }; + requestAnimationFrame(reconcile); + }); +} + +export const measuredEndOffset = (element: HTMLElement) => + element.scrollHeight - element.clientHeight; + /** * Scrolls a newly shown thread back to where the user left it, or to its end, * and reports the thread positioned once the saved row settles. @@ -55,12 +97,10 @@ export function useTimelinePositionRestore({ return; } let cancelled = false; - let settleFrame: number | null = null; const viewport: HTMLElement | null = list.getScrollableNode(); const cancelRestoration = () => { if (cancelled) return; cancelled = true; - if (settleFrame !== null) cancelAnimationFrame(settleFrame); if (viewport) void list.scrollToOffset({ offset: viewport.scrollTop, animated: false }); onPositioned(listIdentityKey); }; @@ -99,54 +139,41 @@ export function useTimelinePositionRestore({ : listOpenedOnRef.current?.identity === listIdentityKey ? undefined : list.scrollToEnd({ animated: false }); - void Promise.resolve(scrolling).then(() => { + const settlesAtEnd = position?.atEnd !== false && scrolling !== undefined; + void Promise.resolve(scrolling).then(async () => { if (cancelled) return; - if (position?.atEnd !== false || index < 0) { - onPositioned(listIdentityKey); - return; - } - // Index scrolling starts from estimates. Keep the saved row mounted - // until its measured position and the DOM agree for two layout frames. - let stableFrames = 0; - const reconcile = () => { - if (cancelled) return; - const state = list.getState(); - const rowIndex = state.indexByKey(position.rowId); - const row = rowIndex === undefined ? undefined : state.elementAtIndex(rowIndex); - const element = list.getScrollableNode(); - if (!row || !element) return; - const offset = Math.max( - 0, - Math.min( - element.scrollTop + - row.getBoundingClientRect().top - - element.getBoundingClientRect().top + - position.offsetWithinRow, - element.scrollHeight - element.clientHeight, - ), + if (settlesAtEnd) { + await settleListScroll(list, measuredEndOffset, () => cancelled); + } else if (position?.atEnd === false && index >= 0) { + // Keep the saved row mounted until its measured position and the DOM agree. + await settleListScroll( + list, + (element) => { + const state = list.getState(); + const rowIndex = state.indexByKey(position.rowId); + const row = rowIndex === undefined ? undefined : state.elementAtIndex(rowIndex); + if (!row) return undefined; + return Math.max( + 0, + Math.min( + element.scrollTop + + row.getBoundingClientRect().top - + element.getBoundingClientRect().top + + position.offsetWithinRow, + measuredEndOffset(element), + ), + ); + }, + () => cancelled, ); - if (Math.abs(element.scrollTop - offset) > 1) { - stableFrames = 0; - void list.scrollToOffset({ offset, animated: false }).then(() => { - if (!cancelled) settleFrame = requestAnimationFrame(reconcile); - }); - return; - } - stableFrames += 1; - if (stableFrames >= 2) { - onPositioned(listIdentityKey); - } else { - settleFrame = requestAnimationFrame(reconcile); - } - }; - settleFrame = requestAnimationFrame(reconcile); + } + if (!cancelled) onPositioned(listIdentityKey); }); return () => { cancelled = true; if (cancelPositionRestoreRef?.current === cancelRestoration) { cancelPositionRestoreRef.current = null; } - if (settleFrame !== null) cancelAnimationFrame(settleFrame); viewport?.removeEventListener("wheel", cancelForNavigation); viewport?.removeEventListener("touchmove", cancelForNavigation); viewport?.removeEventListener("pointerdown", cancelForNavigation); From 14b828e58e746eeb0bd84073b36387014320cf59 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:45:24 -0700 Subject: [PATCH 20/28] fix(web): attach DNG originals as generic files (#24625) --- .../chat/composerAttachmentFiles.test.ts | 77 ++++++++++++++++++- .../chat/composerAttachmentFiles.ts | 23 +++++- .../chat/useComposerAttachmentIntake.ts | 7 +- apps/web/src/composerDraftStore.test.ts | 36 +++++++++ apps/web/src/composerDraftStore.ts | 12 +++ 5 files changed, 148 insertions(+), 7 deletions(-) diff --git a/apps/web/src/components/chat/composerAttachmentFiles.test.ts b/apps/web/src/components/chat/composerAttachmentFiles.test.ts index a32e8e985c91..39477442bd2b 100644 --- a/apps/web/src/components/chat/composerAttachmentFiles.test.ts +++ b/apps/web/src/components/chat/composerAttachmentFiles.test.ts @@ -1,15 +1,90 @@ -import { EnvironmentId, PROVIDER_SEND_TURN_MAX_FILE_BYTES } from "@t3tools/contracts"; +import { + EnvironmentId, + getProviderAttachmentLimitError, + PROVIDER_SEND_TURN_MAX_FILE_BYTES, +} from "@t3tools/contracts"; import { describe, expect, it } from "vite-plus/test"; +import { isFileAttachment, isImageAttachment } from "../../types"; import type { ComposerFileAttachment, ComposerImageAttachment } from "../../composerDraftStore"; import { attachmentsToReleaseOnUploadCapabilityLoss, + classifyComposerAttachmentFile, + composerFileAttachmentMimeType, fileAttachmentCapabilityBlockReason, fileAttachmentStagingLimit, + normalizeComposerImageFileMimeType, shouldHandleComposerAttachmentPaste, } from "./composerAttachmentFiles"; describe("composer attachment files", () => { + it("keeps DNG originals on the file path without changing their bytes", async () => { + const bytes = new Uint8Array([0x49, 0x49, 0x2a, 0x00, 0x08, 0, 0, 0, 0xfe, 0xff, 0x00, 0x80]); + const files = [ + new File([bytes], "photo.DNG", { type: "image/tiff" }), + new File([bytes], "photo.dng", { type: "image/png" }), + new File([bytes], "photo.dng", { type: "image/jpeg" }), + new File([bytes], "clipboard", { type: "image/dng" }), + new File([bytes], "clipboard", { type: "image/x-dng" }), + new File([bytes], "clipboard", { type: "image/x-adobe-dng" }), + ]; + + const attachments = await Promise.all( + files.map(async (file) => ({ + kind: classifyComposerAttachmentFile(file), + bytes: new Uint8Array(await normalizeComposerImageFileMimeType(file).arrayBuffer()), + })), + ); + + expect(attachments).toEqual(files.map(() => ({ kind: "file", bytes }))); + }); + + it("keeps misleading DNG MIME labels out of downstream image detection and budgets", () => { + for (const type of ["image/png", "image/jpeg", "image/tiff", "image/dng", ""]) { + const attachment = { + type: "file" as const, + id: "raw", + name: "photo.DNG", + mimeType: composerFileAttachmentMimeType({ name: "photo.DNG", type }), + sizeBytes: 81 * 1024 * 1024, + }; + + expect(isImageAttachment(attachment)).toBe(false); + expect(isFileAttachment(attachment)).toBe(true); + expect(getProviderAttachmentLimitError([attachment])).toBeUndefined(); + } + }); + + it("claims a captioned DNG paste even when its MIME is generic", () => { + const file = new File(["raw"], "photo.dng", { type: "application/octet-stream" }); + + expect( + shouldHandleComposerAttachmentPaste({ files: [file], plainText: "Inspect this original" }), + ).toBe(true); + }); + + it("keeps ordinary images on their existing paths", () => { + const files = [ + { name: "photo.jpg", type: "image/jpeg" }, + { name: "export.dng.png", type: "image/png" }, + { name: "photo.webp", type: "image/webp" }, + { name: "photo.gif", type: "image/gif" }, + { name: "photo.heic", type: "" }, + { name: "scan.tif", type: "image/tiff" }, + { name: "photo.cr2", type: "image/x-canon-cr2" }, + ]; + + expect(files.map(classifyComposerAttachmentFile)).toEqual([ + "image", + "image", + "image", + "image", + "image", + "unsupported-image", + "unsupported-image", + ]); + }); + it("preserves text paste when an application adds a synthetic generic file", () => { const file = new File(["clipboard"], "clipboard.rtf", { type: "application/rtf" }); diff --git a/apps/web/src/components/chat/composerAttachmentFiles.ts b/apps/web/src/components/chat/composerAttachmentFiles.ts index 1517d4f2c0a0..0d7648e3b538 100644 --- a/apps/web/src/components/chat/composerAttachmentFiles.ts +++ b/apps/web/src/components/chat/composerAttachmentFiles.ts @@ -10,7 +10,7 @@ import { import type { ComposerFileAttachment, ComposerImageAttachment } from "../../composerDraftStore"; import { isHeicImageFile } from "../../lib/imageCompression"; -import { isVideoAttachment } from "../../types"; +import { isVideoAttachment, videoMimeType } from "../../types"; type ComposerAttachmentFileKind = "image" | "file" | "unsupported-image"; @@ -59,9 +59,29 @@ export function normalizeComposerImageFileMimeType(file: File): File { }); } +function isDngFile(file: Pick): boolean { + const mimeType = file.type.split(";", 1)[0]?.trim().toLowerCase(); + return ( + file.name.toLowerCase().endsWith(".dng") || + mimeType === "image/dng" || + mimeType === "image/x-dng" || + mimeType === "image/x-adobe-dng" + ); +} + +export function composerFileAttachmentMimeType(file: Pick): string { + // Downstream image detection uses MIME, even for attachments staged as files. + if (isDngFile(file)) return "image/x-adobe-dng"; + return ( + videoMimeType({ name: file.name, mimeType: file.type }) ?? + (file.type || "application/octet-stream") + ); +} + export function classifyComposerAttachmentFile( file: Pick, ): ComposerAttachmentFileKind { + if (isDngFile(file)) return "file"; if (isHeicImageFile(file)) { return "image"; } @@ -147,6 +167,7 @@ export function shouldHandleComposerAttachmentPaste(input: { }): boolean { if ( input.files.some((file) => { + if (isDngFile(file)) return true; const classification = classifyComposerAttachmentFile(file); return classification === "image" || classification === "unsupported-image"; }) diff --git a/apps/web/src/components/chat/useComposerAttachmentIntake.ts b/apps/web/src/components/chat/useComposerAttachmentIntake.ts index 1008b71fa8b4..63a865c4fc94 100644 --- a/apps/web/src/components/chat/useComposerAttachmentIntake.ts +++ b/apps/web/src/components/chat/useComposerAttachmentIntake.ts @@ -25,6 +25,7 @@ import { } from "../../questionAttachments"; import { classifyComposerAttachmentFile, + composerFileAttachmentMimeType, normalizeComposerImageFileMimeType, } from "./composerAttachmentFiles"; import { @@ -45,7 +46,6 @@ import { import { requestConfirmDialog } from "~/confirmDialog"; import { toastManager } from "../ui/toast"; import { type RefObject, useRef } from "react"; -import { videoMimeType } from "../../types"; import { addPreparingComposerImages, isPreparingComposerImage, @@ -162,10 +162,7 @@ export function useComposerAttachmentIntake(input: { for (const file of files) { const attachmentKind = classifyComposerAttachmentFile(file); const fileMimeType = - attachmentKind === "file" - ? (videoMimeType({ name: file.name, mimeType: file.type }) ?? - (file.type || "application/octet-stream")) - : file.type; + attachmentKind === "file" ? composerFileAttachmentMimeType(file) : file.type; const matchingReattachMarker = attachmentKind === "file" ? reattachMarkers.find( diff --git a/apps/web/src/composerDraftStore.test.ts b/apps/web/src/composerDraftStore.test.ts index 44f1d5a92a91..a7eb9b1c1a04 100644 --- a/apps/web/src/composerDraftStore.test.ts +++ b/apps/web/src/composerDraftStore.test.ts @@ -521,6 +521,42 @@ describe("composerDraftStore file attachments", () => { expect(draft?.files.map((file) => file.id)).toEqual(["file-accepted"]); }); + it("reattaches a DNG with an older generic-MIME marker at attachment capacity", () => { + const store = useComposerDraftStore.getState(); + const file = new File(["raw"], "photo.DNG", { type: "image/x-adobe-dng" }); + const marker: ComposerFileAttachment = { + type: "file", + id: "dng-marker", + name: file.name, + mimeType: "application/octet-stream", + sizeBytes: file.size, + file: null, + }; + store.addFiles(threadRef, [marker]); + store.addImages( + threadRef, + Array.from({ length: PROVIDER_SEND_TURN_MAX_ATTACHMENTS - 1 }, (_, index) => + makeImage({ + id: `image-${index}`, + name: `image-${index}.png`, + previewUrl: `blob:image-${index}`, + }), + ), + ); + + const repicked: ComposerFileAttachment = { + ...marker, + id: "dng-repicked", + mimeType: file.type, + file, + }; + store.addFiles(threadRef, [repicked]); + + const files = store.getComposerDraft(threadRef)?.files; + expect(files).toEqual([repicked]); + expect(files?.some(composerFileNeedsReattach)).toBe(false); + }); + it("replaces a needs-reattach marker when the same file is picked again", () => { const store = useComposerDraftStore.getState(); const marker: ComposerFileAttachment = { ...makeFile("file-marker"), file: null }; diff --git a/apps/web/src/composerDraftStore.ts b/apps/web/src/composerDraftStore.ts index 57ffde65949f..8c04bf2ae6f2 100644 --- a/apps/web/src/composerDraftStore.ts +++ b/apps/web/src/composerDraftStore.ts @@ -1,4 +1,5 @@ import { stripInlineContextReferences } from "./lib/composerContextReferences"; +import { composerFileAttachmentMimeType } from "./components/chat/composerAttachmentFiles"; import { elementContextToPreviewAnnotation } from "./lib/elementContext"; import { ElementContextDetails, @@ -804,6 +805,17 @@ export function composerFileMatchesReattachMarker( ): boolean { if (marker.name !== file.name || marker.sizeBytes !== file.sizeBytes) return false; if (marker.mimeType === file.mimeType) return true; + const normalizedMarkerMimeType = composerFileAttachmentMimeType({ + name: marker.name, + type: marker.mimeType, + }); + if ( + normalizedMarkerMimeType === "image/x-adobe-dng" && + normalizedMarkerMimeType === + composerFileAttachmentMimeType({ name: file.name, type: file.mimeType }) + ) { + return true; + } const markerMimeType = marker.mimeType.toLowerCase(); return ( (markerMimeType === "" || markerMimeType === "application/octet-stream") && From cd2b681e1ae9b248549e9c1f40f427081d012411 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:49:05 -0700 Subject: [PATCH 21/28] fix(server): surface failed runtime request answer delivery (#24616) Co-authored-by: Claude Opus 5.5 --- .../src/orchestration-v2/EffectWorker.test.ts | 42 +++++- .../src/orchestration-v2/EffectWorker.ts | 23 +++- .../src/orchestration-v2/Orchestrator.ts | 67 ++++++++- .../src/orchestration-v2/runtimeLayer.test.ts | 130 ++++++++++++++++++ packages/contracts/src/orchestrationV2.ts | 7 + 5 files changed, 266 insertions(+), 3 deletions(-) diff --git a/apps/server/src/orchestration-v2/EffectWorker.test.ts b/apps/server/src/orchestration-v2/EffectWorker.test.ts index 671d7902fb45..724e38f87558 100644 --- a/apps/server/src/orchestration-v2/EffectWorker.test.ts +++ b/apps/server/src/orchestration-v2/EffectWorker.test.ts @@ -9,6 +9,7 @@ import { ProviderTurnId, RunAttemptId, RunId, + RuntimeRequestId, ThreadId, VcsProcessExitError, } from "@t3tools/contracts"; @@ -83,6 +84,7 @@ function layerExecutorFor(input: { readonly continueAfterRestart?: boolean; readonly interrupt?: ProviderTurnControlService.ProviderTurnControlServiceV2Shape["interrupt"]; readonly rollback?: CheckpointRollbackService.CheckpointRollbackServiceV2Shape["execute"]; + readonly respond?: RuntimeRequestService.RuntimeRequestServiceV2["Service"]["respond"]; }) { const record = (event: string) => Ref.update(input.events, (events) => [...events, event]); const layerDependencies = Layer.mergeAll( @@ -142,7 +144,9 @@ function layerExecutorFor(input: { ), Layer.succeed( RuntimeRequestService.RuntimeRequestServiceV2, - RuntimeRequestService.RuntimeRequestServiceV2.of({ respond: () => Effect.void }), + RuntimeRequestService.RuntimeRequestServiceV2.of({ + respond: input.respond ?? (() => Effect.void), + }), ), Layer.succeed( ThreadTitleRegenerationService.ThreadTitleRegenerationService, @@ -269,6 +273,42 @@ it.effect.each([ }), ); +it.effect("does not report an answer whose last delivery attempt is interrupted", () => + Effect.gen(function* () { + const now = yield* DateTime.now; + const reported = yield* Ref.make(0); + const layer = layerExecutorFor({ + events: yield* Ref.make>([]), + respond: () => Effect.interrupt, + threads: { + dispatch: (command) => + Ref.update(reported, (count) => + command.type === "runtime-request.delivery.fail" ? count + 1 : count, + ).pipe(Effect.as({ sequence: 1, storedEvents: [] })), + }, + }); + const exit = yield* Effect.gen(function* () { + const executor = yield* EffectWorker.OrchestrationEffectExecutorV2; + return yield* Effect.exit( + executor.execute( + { + ...restartEffect(now, { type: "detach" }), + request: { + type: "runtime-request.respond", + providerSessionId: oldSessionId, + requestId: RuntimeRequestId.make("runtime-request:effect-worker-interrupted"), + answers: { next: "Ship it" }, + }, + }, + { willRetry: false }, + ), + ); + }).pipe(Effect.provide(layer)); + assert.isTrue(Exit.hasInterrupts(exit)); + assert.equal(yield* Ref.get(reported), 0); + }), +); + it.effect("requeues a claim when a pre-execution worker check fails", () => Effect.gen(function* () { const now = DateTime.formatIso(yield* DateTime.now); diff --git a/apps/server/src/orchestration-v2/EffectWorker.ts b/apps/server/src/orchestration-v2/EffectWorker.ts index 42128b883711..46ea05b9fe2a 100644 --- a/apps/server/src/orchestration-v2/EffectWorker.ts +++ b/apps/server/src/orchestration-v2/EffectWorker.ts @@ -375,7 +375,8 @@ export const layerExecutor: Layer.Layer< }), ), ); - case "runtime-request.respond": + case "runtime-request.respond": { + const requestId = effect.request.requestId; return runtimeRequests .respond({ threadId: effect.threadId, @@ -392,6 +393,25 @@ export const layerExecutor: Layer.Layer< : { answers: effect.request.answers }), }) .pipe( + Effect.tapCause((cause) => + willRetry || Cause.hasInterruptsOnly(cause) + ? Effect.void + : threads + .dispatch({ + type: "runtime-request.delivery.fail", + commandId: CommandId.make(`${effect.commandId}:delivery-failed`), + threadId: effect.threadId, + requestId, + }) + .pipe( + Effect.catchCause((recordCause) => + Effect.logWarning("Failed to record answer delivery failure", { + effectId: effect.id, + cause: recordCause, + }), + ), + ), + ), Effect.mapError( (cause) => new OrchestrationEffectExecutionError({ @@ -401,6 +421,7 @@ export const layerExecutor: Layer.Layer< }), ), ); + } case "provider-thread.rollback": return checkpointRollback .execute({ diff --git a/apps/server/src/orchestration-v2/Orchestrator.ts b/apps/server/src/orchestration-v2/Orchestrator.ts index 351e804ac631..8f5fad1c735b 100644 --- a/apps/server/src/orchestration-v2/Orchestrator.ts +++ b/apps/server/src/orchestration-v2/Orchestrator.ts @@ -61,7 +61,7 @@ import { RuntimeMode, ThreadLinkedPullRequest, ThreadId, - type TurnItemId, + TurnItemId, } from "@t3tools/contracts"; import { modelSelectionsEqual } from "@t3tools/shared/model"; import { recordThreadOpen } from "@t3tools/shared/paletteSearch"; @@ -490,6 +490,7 @@ function commandThreadId(command: OrchestrationV2ServerCommand): ThreadId { case "queued-run.cancel": case "queued-run.edit": case "runtime-request.respond": + case "runtime-request.delivery.fail": case "thread.user-input.dismiss": case "checkpoint.rollback": case "checkpoint.rollback.fail": @@ -555,6 +556,8 @@ function delegatedTasksStopEffect(command: { } const WORKSPACE_PREPARATION_INPUT = "Preparing workspace"; +const RUNTIME_REQUEST_DELIVERY_FAILED_MESSAGE = + "T3 Code could not confirm that your answer reached the agent. If the run stays stuck, stop it and try again."; function withoutPreparationResult( item: Extract, @@ -8005,6 +8008,65 @@ const makeOrchestrator = Effect.fn("orchestrationV2.Orchestrator.layer")(functio }, ); + /** + * Respond resolves the request before delivery, and a failed delivery cannot + * tell whether the provider is still waiting, so the answer stays recorded and + * the timeline shows the failure instead of a run spinning with no question. + */ + const dispatchRuntimeRequestDeliveryFail = Effect.fn( + "Orchestrator.dispatchRuntimeRequestDeliveryFail", + )(function* ( + command: Extract< + OrchestrationV2InternalCommand, + { readonly type: "runtime-request.delivery.fail" } + >, + events: Ref.Ref>, + ) { + const thread = yield* projectionStore + .getThread(command.threadId) + .pipe(mapDispatchError(command)); + if (thread.deletedAt !== null) return; + const node = (yield* projectionStore + .getRuntimeResponseContext(command.threadId, command.requestId) + .pipe(mapDispatchError(command))).node; + if (node === undefined) return; + const now = yield* DateTime.now; + yield* emit( + events, + command, + )({ + type: "turn-item.updated", + threadId: command.threadId, + ...(node.runId === null ? {} : { runId: node.runId }), + nodeId: node.id, + providerInstanceId: thread.providerInstanceId, + occurredAt: now, + payload: { + id: TurnItemId.make(`turn-item:runtime-request-delivery-failure:${command.requestId}`), + threadId: command.threadId, + runId: node.runId, + nodeId: node.id, + providerThreadId: node.providerThreadId, + providerTurnId: node.providerTurnId, + nativeItemRef: null, + parentItemId: null, + ordinal: yield* nextTurnItemOrdinal({ thread }), + status: "failed", + title: "Answer delivery not confirmed", + startedAt: now, + completedAt: now, + updatedAt: now, + type: "error", + failure: { + class: "transport_error", + message: RUNTIME_REQUEST_DELIVERY_FAILED_MESSAGE, + code: null, + retryable: null, + }, + }, + }); + }); + const dispatchThreadUserInputDismiss = Effect.fn("Orchestrator.dispatchThreadUserInputDismiss")( function* ( command: Extract, @@ -11697,6 +11759,9 @@ const makeOrchestrator = Effect.fn("orchestrationV2.Orchestrator.layer")(functio case "checkpoint.rollback.fail": yield* dispatchCheckpointRollbackFail(command, events); break; + case "runtime-request.delivery.fail": + yield* dispatchRuntimeRequestDeliveryFail(command, events); + break; case "thread.background-work.settle": yield* dispatchBackgroundWorkSettle(command, events, effects); break; diff --git a/apps/server/src/orchestration-v2/runtimeLayer.test.ts b/apps/server/src/orchestration-v2/runtimeLayer.test.ts index 6901f5b8bc24..d09126a8d14b 100644 --- a/apps/server/src/orchestration-v2/runtimeLayer.test.ts +++ b/apps/server/src/orchestration-v2/runtimeLayer.test.ts @@ -1231,6 +1231,136 @@ it.layer(layerTest)("OrchestrationV2LayerLive", (it) => { }), ); + it.effect("reports an answer that never reaches its provider without reopening it", () => + Effect.gen(function* () { + const orchestrator = yield* Orchestrator.OrchestratorV2; + const eventSink = yield* EventSink.EventSinkV2; + const outbox = yield* EffectOutbox.EffectOutboxV2; + const worker = yield* EffectWorker.OrchestrationEffectWorkerV2; + const now = yield* DateTime.now; + const threadId = ThreadId.make("runtime-lost-answer"); + // Projected as attached, but no live session holds it, so every delivery fails. + const providerSessionId = ProviderSessionId.make("runtime-lost-answer-session"); + const requestId = RuntimeRequestId.make("runtime-lost-answer-request"); + const nodeId = NodeId.make("runtime-lost-answer-node"); + yield* orchestrator.dispatch({ + type: "thread.create", + commandId: CommandId.make("runtime-lost-answer-create"), + createdBy: "user", + creationSource: "web", + threadId, + projectId: ProjectId.make("runtime-lost-answer-project"), + title: "Lost answer", + modelSelection, + runtimeMode: "full-access", + interactionMode: "default", + branch: null, + worktreePath: process.cwd(), + }); + yield* eventSink.write({ + commandId: CommandId.make("runtime-lost-answer-seed"), + events: [ + { + id: EventId.make("runtime-lost-answer-session-event"), + type: "provider-session.attached", + threadId, + driver, + occurredAt: now, + payload: { + id: providerSessionId, + driver, + providerInstanceId: modelSelection.instanceId, + status: "running", + cwd: process.cwd(), + model: modelSelection.model, + capabilities: CodexProviderCapabilitiesV2, + createdAt: now, + updatedAt: now, + lastError: null, + }, + }, + { + id: EventId.make("runtime-lost-answer-node-event"), + type: "node.updated", + threadId, + nodeId, + occurredAt: now, + payload: { + id: nodeId, + threadId, + runId: null, + parentNodeId: null, + rootNodeId: nodeId, + kind: "user_input_request", + status: "waiting", + countsForRun: false, + providerThreadId: null, + providerTurnId: null, + nativeItemRef: null, + runtimeRequestId: requestId, + checkpointScopeId: null, + startedAt: now, + completedAt: null, + }, + }, + { + id: EventId.make("runtime-lost-answer-request-event"), + type: "runtime-request.updated", + threadId, + nodeId, + occurredAt: now, + payload: { + id: requestId, + nodeId, + providerTurnId: null, + nativeRequestRef: null, + kind: "user_input", + status: "pending", + responseCapability: { type: "live", providerSessionId }, + createdAt: now, + resolvedAt: null, + }, + }, + ], + }); + const commandId = CommandId.make("runtime-lost-answer-answer"); + const answers = { color: "Blue" }; + yield* orchestrator.dispatch({ + type: "runtime-request.respond", + commandId, + threadId, + requestId, + answers, + }); + const errors = orchestrator + .getThreadProjection(threadId) + .pipe( + Effect.map((projection) => projection.turnItems.filter((item) => item.type === "error")), + ); + + // A delivery that can still be retried reports nothing. + yield* worker.drain(); + assert.deepEqual(yield* errors, []); + for (let attempt = 1; attempt < 5; attempt++) { + yield* TestClock.adjust("30 seconds"); + yield* worker.drain(); + } + + const [deliveryEffect] = yield* outbox.listByCommandId(commandId); + assert.equal(deliveryEffect?.request.type, "runtime-request.respond"); + assert.equal(deliveryEffect?.status, "failed"); + const failed = yield* orchestrator.getThreadProjection(threadId); + const reported = failed.turnItems.filter((item) => item.type === "error"); + assert.equal(reported.length, 1); + assert.equal(reported[0]?.status, "failed"); + assert.equal(reported[0]?.nodeId, nodeId); + // The answer stays recorded; the user is not asked again. + const request = failed.runtimeRequests.find((row) => row.id === requestId); + assert.equal(request?.status, "resolved"); + assert.deepEqual(request?.answers, answers); + }), + ); + it.effect("dismisses message-capable questions directly and while settling", () => Effect.gen(function* () { const orchestrator = yield* Orchestrator.OrchestratorV2; diff --git a/packages/contracts/src/orchestrationV2.ts b/packages/contracts/src/orchestrationV2.ts index 5ef2dd247a51..61b21a97ddc3 100644 --- a/packages/contracts/src/orchestrationV2.ts +++ b/packages/contracts/src/orchestrationV2.ts @@ -3136,6 +3136,13 @@ const OrchestrationV2InternalCommand = Schema.Union([ requestId: CommandId, message: TrimmedNonEmptyString, }), + /** Delivering the answer to request `requestId` failed on its last attempt. */ + Schema.Struct({ + type: Schema.Literal("runtime-request.delivery.fail"), + commandId: CommandId, + threadId: ThreadId, + requestId: RuntimeRequestId, + }), Schema.Struct({ type: Schema.Literal("thread.background-work.settle"), commandId: CommandId, From b8be6da0259e7774fa2d8497dd6b7fcdce374acf Mon Sep 17 00:00:00 2001 From: Ethereal49 Date: Sun, 25 Oct 2026 08:49:41 +0800 Subject: [PATCH 22/28] fix(preview): report navigation timeout accurately (#24356) --- .../server/src/mcp/PreviewAutomationBroker.ts | 15 ++++++++- apps/server/src/preview/ServerBrowser.test.ts | 31 +++++++++++++++++++ apps/server/src/preview/ServerBrowser.ts | 6 ++-- apps/server/src/preview/ServerBrowserPage.ts | 11 +++++-- 4 files changed, 58 insertions(+), 5 deletions(-) diff --git a/apps/server/src/mcp/PreviewAutomationBroker.ts b/apps/server/src/mcp/PreviewAutomationBroker.ts index c1ae21dfd3b4..4e16f702b25c 100644 --- a/apps/server/src/mcp/PreviewAutomationBroker.ts +++ b/apps/server/src/mcp/PreviewAutomationBroker.ts @@ -205,6 +205,14 @@ function remoteDetailKind(detail: unknown): RemoteDetailKind { } } +const readRemoteTimeoutMs = (detail: unknown): number | undefined => { + if (typeof detail !== "object" || detail === null || !("timeoutMs" in detail)) return undefined; + const timeoutMs = detail.timeoutMs; + return typeof timeoutMs === "number" && Number.isInteger(timeoutMs) && timeoutMs > 0 + ? timeoutMs + : undefined; +}; + const MAX_REASON_CHARS = 500; const classifyResponseError = ( @@ -253,11 +261,16 @@ const classifyResponseError = ( ...context, ...remoteDiagnostics, }); - case "PreviewAutomationTimeoutError": + case "PreviewAutomationTimeoutError": { + const remoteTimeoutMs = readRemoteTimeoutMs(error.detail); return new PreviewAutomationTimeoutError({ ...context, ...remoteDiagnostics, + ...(remoteTimeoutMs === undefined + ? {} + : { timeoutMs: Math.min(context.timeoutMs, remoteTimeoutMs) }), }); + } case "PreviewAutomationControlInterruptedError": { const reason = decodeControlReason(error.detail); return new PreviewAutomationControlInterruptedError({ diff --git a/apps/server/src/preview/ServerBrowser.test.ts b/apps/server/src/preview/ServerBrowser.test.ts index 2b33f3b37080..8ac47a279478 100644 --- a/apps/server/src/preview/ServerBrowser.test.ts +++ b/apps/server/src/preview/ServerBrowser.test.ts @@ -379,6 +379,37 @@ beforeEach(() => { desktopConnections.length = 0; }); +it.live("preview_open reports its navigation timeout instead of the request budget", () => + Effect.scoped( + Effect.gen(function* () { + const { broker } = yield* ready; + initialNavigation = async () => { + throw Object.assign(new Error("page.goto: Timeout 15000ms exceeded."), { + name: "TimeoutError", + }); + }; + + const error = yield* broker + .invoke({ + scope, + operation: "open", + input: { + url: "http://localhost:1337/", + reuseExistingTab: false, + show: false, + }, + }) + .pipe(Effect.flip); + + expect(error).toMatchObject({ + _tag: "PreviewAutomationTimeoutError", + timeoutMs: 15_000, + }); + expect(error.message).toBe("Preview automation open timed out after 15000ms."); + }), + ).pipe(Effect.provide(layer)), +); + it.live.each(["desktop" as const, undefined])( "explicit desktop targets ($0 runtime) fail without creating a server tab", (runtime) => diff --git a/apps/server/src/preview/ServerBrowser.ts b/apps/server/src/preview/ServerBrowser.ts index 3544cd172a04..641c0eb41a40 100644 --- a/apps/server/src/preview/ServerBrowser.ts +++ b/apps/server/src/preview/ServerBrowser.ts @@ -902,7 +902,9 @@ const make = Effect.gen(function* () { (desktop || adopted) && page.url() === snapshot.navStatus.url ? page.reload(options) : page.goto(snapshot.navStatus.url, options) - ).then(constVoid); + ).then(constVoid, (cause: unknown) => { + throw ServerBrowserPage.toOperationError(cause, NAVIGATION_TIMEOUT_MS); + }); if (tab.control.agentId !== null) tab.control.track(tab.initialNavigation); else void tab.initialNavigation.catch(constVoid); @@ -1458,7 +1460,7 @@ const make = Effect.gen(function* () { `Navigation to ${url} failed: ${ServerBrowserPage.parseNetError(message).description}`, ); } - throw cause; + throw ServerBrowserPage.toOperationError(cause, timeout); }); }; diff --git a/apps/server/src/preview/ServerBrowserPage.ts b/apps/server/src/preview/ServerBrowserPage.ts index 235502925839..c6ca0e4a0f8f 100644 --- a/apps/server/src/preview/ServerBrowserPage.ts +++ b/apps/server/src/preview/ServerBrowserPage.ts @@ -40,7 +40,10 @@ export class ServerBrowserOperationError extends Error { } } -export const toOperationError = (cause: unknown): ServerBrowserOperationError => { +export const toOperationError = ( + cause: unknown, + timeoutMs?: number, +): ServerBrowserOperationError => { if (cause instanceof BrowserControlInterrupted) return new ServerBrowserOperationError( "PreviewAutomationControlInterruptedError", @@ -51,7 +54,11 @@ export const toOperationError = (cause: unknown): ServerBrowserOperationError => const message = cause instanceof Error ? cause.message : String(cause); const firstLine = message.split("\n")[0] ?? message; if (cause instanceof Error && cause.name === "TimeoutError") { - return new ServerBrowserOperationError("PreviewAutomationTimeoutError", firstLine); + return new ServerBrowserOperationError( + "PreviewAutomationTimeoutError", + firstLine, + timeoutMs === undefined ? undefined : { timeoutMs }, + ); } if ( /while parsing selector|Unknown engine|Unexpected token|strict mode violation/i.test(message) From 945fd1df71cf67311ffe50ef8f382ec812f83830 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Sat, 24 Oct 2026 17:50:31 -0700 Subject: [PATCH 23/28] fix(web): give PR row metadata room below the title (#24553) Co-authored-by: Afonso Ferreira Co-authored-by: Claude Opus 5.5 --- apps/web/src/components/chat/ThreadDetailsPrRow.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/components/chat/ThreadDetailsPrRow.tsx b/apps/web/src/components/chat/ThreadDetailsPrRow.tsx index 0d86e6ff4bfb..4696e7c71a84 100644 --- a/apps/web/src/components/chat/ThreadDetailsPrRow.tsx +++ b/apps/web/src/components/chat/ThreadDetailsPrRow.tsx @@ -430,7 +430,7 @@ export function ThreadDetailsPrRow({ {detail !== null && (showChecks || trailingAction !== null || watching) ? (
{openRow(detail.title, "row")} -
+
#{number} {showChecks && checksRollup !== null ? ( Date: Sat, 24 Oct 2026 17:57:03 -0700 Subject: [PATCH 24/28] fix(mobile): center floating status actions (#24526) --- .../threads/floating-working-control.tsx | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/apps/mobile/src/features/threads/floating-working-control.tsx b/apps/mobile/src/features/threads/floating-working-control.tsx index a012e6253f4f..c39788a66976 100644 --- a/apps/mobile/src/features/threads/floating-working-control.tsx +++ b/apps/mobile/src/features/threads/floating-working-control.tsx @@ -196,20 +196,24 @@ export function FloatingWorkingControl(props: { {statusContent} {action !== null ? ( - setActionWidth(settleWidth(event.nativeEvent.layout.width))} - className={`h-11 flex-row items-center gap-1.5 px-3 active:opacity-70 ${action.disabled ? "opacity-50" : ""}`} + className="h-11 flex-row items-center" > - - - {action.label} - - + + + + {action.label} + + + ) : null} {hasPreview ? ( setAgentsWidth(settleWidth(event.nativeEvent.layout.width))} className="h-11 flex-row items-center gap-1.5 px-3 active:opacity-70" > - {hasStatus || hasPreview ? : null} + {hasStatus || hasPreview ? : null} {agents.label} @@ -252,7 +256,7 @@ export function FloatingWorkingControl(props: { className="h-11 flex-row items-center gap-2 px-3 active:opacity-70" > {hasStatus || hasPreview || hasAgents ? ( - + ) : null} From 453bf01d2068758fac79f9aa74099b2e85bbc719 Mon Sep 17 00:00:00 2001 From: wojas Date: Sun, 25 Oct 2026 09:04:04 +0800 Subject: [PATCH 25/28] fix(mobile): the iPhone new-chat button sits beside the tab bar on iOS 26.6 (#24492) Co-authored-by: Claude Opus 5.5 --- .../ios/T3SidebarTabBarView.swift | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apps/mobile/modules/t3-native-controls/ios/T3SidebarTabBarView.swift b/apps/mobile/modules/t3-native-controls/ios/T3SidebarTabBarView.swift index 2f9fa98f0d5a..b7afac0b4b98 100644 --- a/apps/mobile/modules/t3-native-controls/ios/T3SidebarTabBarView.swift +++ b/apps/mobile/modules/t3-native-controls/ios/T3SidebarTabBarView.swift @@ -6,7 +6,10 @@ private final class WorkspaceTabBar: UITabBar { override func layoutSubviews() { super.layoutSubviews() - let row = tabButtons(in: self).reduce(CGRect.null) { $0.union(convert($1.bounds, from: $1)) } + // iOS 26.6 doesn't copy item identifiers onto its tab buttons; the bar holds no other controls. + let identified = tabButtons(in: self) { $0.accessibilityIdentifier?.hasPrefix("workspace-tab-") == true } + let buttons = identified.isEmpty ? tabButtons(in: self) { _ in true } : identified + let row = buttons.reduce(CGRect.null) { $0.union(convert($1.bounds, from: $1)) } if !row.isNull { onContentLayout?(row) } } @@ -15,12 +18,10 @@ private final class WorkspaceTabBar: UITabBar { invalidateIntrinsicContentSize() } - private func tabButtons(in view: UIView) -> [UIView] { + private func tabButtons(in view: UIView, matching match: (UIView) -> Bool) -> [UIView] { view.subviews.filter { !$0.isHidden }.flatMap { subview in - if subview is UIControl, subview.accessibilityIdentifier?.hasPrefix("workspace-tab-") == true { - return [subview] - } - return tabButtons(in: subview) + if subview is UIControl, match(subview) { return [subview] } + return tabButtons(in: subview, matching: match) } } } From aa6c8adefd1775f7471ba144a8e4284a3a4142fb Mon Sep 17 00:00:00 2001 From: Yarden Zamir Date: Sun, 25 Oct 2026 03:20:56 +0200 Subject: [PATCH 26/28] fix(mobile): fork settings pages follow Settings as a workspace tab Upstream pingdotgg/t3code#24524 replaces the Settings sheet with root Settings pages. - Pair again opens Add environment with openSettings. - The sidebar tab editor opens the SettingsSidebarTab root route. - The new terminal thread sheet is in the workspace overlay route list, which moved to workspace-overlay-routes.ts. --- apps/mobile/src/features/connection/forkPairAgain.ts | 8 +++----- .../src/features/layout/workspace-overlay-routes.ts | 2 ++ apps/mobile/src/state/forkSidebarTabs.ts | 7 +++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/apps/mobile/src/features/connection/forkPairAgain.ts b/apps/mobile/src/features/connection/forkPairAgain.ts index c8d3da34ce47..4c9c7540826b 100644 --- a/apps/mobile/src/features/connection/forkPairAgain.ts +++ b/apps/mobile/src/features/connection/forkPairAgain.ts @@ -7,15 +7,13 @@ import { useNavigation } from "@react-navigation/native"; import { useCallback } from "react"; +import { openSettings } from "../settings/settings-navigation"; + /** Opens Add environment, where a new pairing link or invite pairs the environment again. */ export function usePairAgain(): () => void { const navigation = useNavigation(); return useCallback( - () => - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsEnvironmentNew" }, - }), + () => openSettings(navigation, "SettingsEnvironmentNew"), [navigation], ); } diff --git a/apps/mobile/src/features/layout/workspace-overlay-routes.ts b/apps/mobile/src/features/layout/workspace-overlay-routes.ts index 0e8a00999506..c5d8a8f7a2f1 100644 --- a/apps/mobile/src/features/layout/workspace-overlay-routes.ts +++ b/apps/mobile/src/features/layout/workspace-overlay-routes.ts @@ -29,6 +29,8 @@ const LISTED_OVERLAY_ROUTES: ReadonlySet = new Set([ "SettingsWaitlist", "ThreadAgents", "ThreadBackgroundWork", + // Fork: the new terminal thread sheet. + "ForkNewTerminalThread", "ThreadPullRequests", "ThreadQueue", "ThreadReviewComment", diff --git a/apps/mobile/src/state/forkSidebarTabs.ts b/apps/mobile/src/state/forkSidebarTabs.ts index ba9c35ecf12f..57ffc0a77f7c 100644 --- a/apps/mobile/src/state/forkSidebarTabs.ts +++ b/apps/mobile/src/state/forkSidebarTabs.ts @@ -140,8 +140,7 @@ export function openSidebarTabEditor( tabId: string, ): void { appAtomRegistry.set(editedSidebarTabIdAtom, tabId); - navigation.navigate("SettingsSheet", { - screen: "SettingsContent", - params: { screen: "SettingsSidebarTab" }, - }); + // A root route: from the home list it opens as a detail of the current tab, as upstream pages + // pushed without the Settings list do. + navigation.navigate("SettingsSidebarTab"); } From ba93b8eff52f8a92e8712973e6719f1cedacd890 Mon Sep 17 00:00:00 2001 From: Yarden Zamir Date: Sun, 25 Oct 2026 03:39:22 +0200 Subject: [PATCH 27/28] docs(server): auto-update comment names awaited monitors Upstream pingdotgg/t3code#24610 counts a monitor as awaited work only when the agent marks it. --- apps/server/src/fork/ForkUpdates.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/server/src/fork/ForkUpdates.ts b/apps/server/src/fork/ForkUpdates.ts index ed1f5bbb8219..32e1706b1db8 100644 --- a/apps/server/src/fork/ForkUpdates.ts +++ b/apps/server/src/fork/ForkUpdates.ts @@ -156,9 +156,10 @@ const make = Effect.gen(function* () { // the thread. Limit: a shell that never ends, such as a dev server, blocks // auto-update until it stops. Revisit if updates stall on such shells. // Other pending tasks do not block. A pull request watch (`monitor`) survives - // a restart and can last for days. Native subagents and monitors are awaited - // work that the upstream restart continuation resumes on purpose, and they - // can run for hours, so waiting for them would hold updates back as long. + // a restart and can last for days. Native subagents, and monitors that the + // agent marks as awaited, are work that the upstream restart continuation + // resumes on purpose. They can run for hours, so waiting for them would hold + // updates back as long. const busyPrograms = Ref.get(busyTerminals).pipe( Effect.map((running) => [...running.values()].filter( From f43cc5e8ad55370e50732d84bc15ea7f7bfeb562 Mon Sep 17 00:00:00 2001 From: Yarden Zamir Date: Sun, 25 Oct 2026 03:54:19 +0200 Subject: [PATCH 28/28] style(mobile): format pair again --- apps/mobile/src/features/connection/forkPairAgain.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/mobile/src/features/connection/forkPairAgain.ts b/apps/mobile/src/features/connection/forkPairAgain.ts index 4c9c7540826b..93f9f3e4bb84 100644 --- a/apps/mobile/src/features/connection/forkPairAgain.ts +++ b/apps/mobile/src/features/connection/forkPairAgain.ts @@ -12,8 +12,5 @@ import { openSettings } from "../settings/settings-navigation"; /** Opens Add environment, where a new pairing link or invite pairs the environment again. */ export function usePairAgain(): () => void { const navigation = useNavigation(); - return useCallback( - () => openSettings(navigation, "SettingsEnvironmentNew"), - [navigation], - ); + return useCallback(() => openSettings(navigation, "SettingsEnvironmentNew"), [navigation]); }